2014-02-19 78 views
0

它的一个简单的代码,但我只是学了所以......我似乎无法找到我的错误到底是什么:未知列“2”“where子句”

"UPDATE `".$table_name_4_updating."` 
      SET id_capuchon = `".$id_selector_4_updating."`, 
       referencia_capuchon= `".$referencia_4_updating."`, 
       medida_capuchon= `".$medida_4_updating."`, 
       material_capuchon= `".$material_4_updating."`, 
       calibre_capuchon= `".$calibre_4_updating."`, 
       impresion_capuchon= `".$impresion_4_updating."`, 
       presentacion_capuchon= `".$presentacion_4_updating."` 
      WHERE id_capuchon=`".$id_selector_4_updating."`"; 

我试着改变的WHERE子句WHERE id_capuchon= '.$id_selector_4_updating.' 等不同的方式,但它的作用是从unknown column foobar in field list

+4

你有错误的引号。将反引号改为单引号(''')。 –

+1

换句话说,你有''哪里foo ='2'''。 –

+0

PHP和SQL是不同的语言;你只是碰巧使用前者来为后者生成代码。当你有一个SQL错误时,你需要检查实际的SQL代码,并可能在你最喜欢的MySQL客户端中进行测试。 –

回答

0

使用了`围绕价值一段单列在WHERE子句中(并在每一个任务太,实际上)。
这种类型的引号用于SQL到指的是字段名称。所以在这里,MySQL正在寻找名为“2”的字段(变量的值为$id_selector_4_updating),但是这个字段不存在,因此错误。
你应该删除它们:

$sql = "UPDATE $table_name_4_updating SET 
      id_capuchon = '$id_selector_4_updating', 
      referencia_capuchon = '$referencia_4_updating', 
      medida_capuchon = '$medida_4_updating', 
      material_capuchon = '$material_4_updating', 
      calibre_capuchon = '$calibre_4_updating', 
      impresion_capuchon = '$impresion_4_updating', 
      presentacion_capuchon = '$presentacion_4_updating' 
     WHERE id_capuchon ='$id_selector_4_updating'"; 
+0

当我删除反引号现在的错误:''字段列表'中的'未知列'2' –

+0

我已更新我的帖子与SQL查询更正,尝试它。 –

+0

那么为什么在这种情况下它确实有效? '$ query_insert =“INSERT INTO'”。$ company_table_name。“'('id_capuchon','referencia_capuchon','medida_capuchon','material_capuchon','calibre_capuchon','impresion_capuchon','presentacion_capuchon') VALUES('', '$ referencia_cap','$ medida_cap','$ material_cap','$ calibre_cap','$ impresion_cap','$ presentacion_cap')“; \t' –

3

你应该改变反引号(`)字符为单引号(')的变化。

例子:

UPDATE 
    $table_name_4_updating 
    SET 
     id_capuchon = '$id_selector_4_updating', 
     referencia_capuchon = '$referencia_4_updating', 
     medida_capuchon = '$medida_4_updating', 
     material_capuchon = '$material_4_updating', 
     calibre_capuchon = '$calibre_4_updating', 
     impresion_capuchon = '$impresion_4_updating', 
     presentacion_capuchon = '$presentacion_4_updating' 
    WHERE id_capuchon = '$id_selector_4_updating' 
+0

也试过,它没有工作......从'where子句'改成字段列表 –

+0

@estebanrincon,立即尝试。 –

+1

*“感谢编辑:Fred -ii - ”* - 不客气,奥廖尔。 –