更新MYSQL中的数据库行时出错

时间:2015-02-04 06:47:22

标签: mysql sql

我有一张桌子

  • 项目:id, userid, item_name, item_description

我想更新一行并使用以下sql语句。

$updateQuery = "UPDATE items SET item_name = '$item_name',
item_desc = '$item_desc' WHERE userid = '$userid' 
AND item_name = '$old_name'";

但它失败了。是因为我使用了要更新的item_name字段来选择行吗?

5 个答案:

答案 0 :(得分:4)

我想我看到了问题

item_desc = '$item_desc'

" 4列id,userid,item_name, item_description。"

将您的查询更改为

$updateQuery = "UPDATE items SET item_name = '$item_name', item_description = '$item_desc' WHERE userid = '$userid' AND item_name = '$old_name'";

答案 1 :(得分:2)

您没有更新item_name,因为您在where子句中使用了它 要么 您可以回显此字符串并在数据库终端中运行以进行验证。

尝试:

$updateQuery = "UPDATE items SET item_name = '" . $item_name . "', item_desc = '" . $item_desc . "' WHERE userid = " . $userid . " AND item_name = '" . $old_name . "';"

答案 2 :(得分:2)

请注意,在您的查询中,您将最后一列称为“item_desc”,因为实际的列名是“item_description”。

MySQL将“item_desc”视为表中的一个单独列,但无法找到它,从而导致错误。

另外,最好注意如何将变量连接到查询。等于(=)符号后,请始终使用此符号'“。$ variable_name。” '连接。例如:

从table1中选择column1,column2,其中(column1 ='“。$ variable_name。”'&& column2 ='“。$ variable_name。”')“;

答案 3 :(得分:1)

你必须连接字符串。

$updateQuery = "UPDATE items SET item_name = '" . $item_name . "', item_desc = '" . $item_desc . "' WHERE userid = " . $userid . " AND item_name = '" . $old_name . "'";

答案 4 :(得分:1)

而不是item_desc,它应该是item_description