'where子句'中的未知列'2'

时间:2014-02-19 19:58:41

标签: php mysql

它是一个简单的代码,但我只是学习它......我似乎无法找到我的错误:

"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

的变化

2 个答案:

答案 0 :(得分: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'

答案 1 :(得分:0)

你正在围绕WHERE子句中的值使用`backticks`(实际上也是在每个赋值中)。
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'";