我有一张桌子
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
字段来选择行吗?
答案 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
。