您好我有一个mysql问题,我真的需要帮助。我的更新代码:
$update = mysql_query("UPDATE products SET stock = stock + $quantity WHERE id = $product_id") or die( mysql_error());
mysql_error说:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '
对我而言,这并不是真的有用。顺便说一句。所有变量都有效。
我知道我必须更新我的代码,但它必须工作。
更新
$update = mysql_query("UPDATE products SET stock = stock + '1' WHERE id = '1'") or die( mysql_error());
该代码现在有效,所以我必须要知道变量是一个字符串。我如何将它们变成int,我尝试过使用(int)$ variable?
答案 0 :(得分:1)
这里的问题是数据类型不匹配。在您的数据库中,id被设置为Int。在PHP代码中,id被设置为String。这会导致问题,因为在查询中注入$id
会在id的值周围添加单引号(如果它是String)。这里有两个选择:
id
变量,例如:
"UPDATE products SET stock = stock + $quantity WHERE id = " . $product_id
正如Jay Blanchard所说,你应该看prepared statements并使用PDO或MySQLi
答案 1 :(得分:0)
$update = mysql_query("UPDATE products SET stock = stock". $quantity." WHERE id = ".$product_id)
答案 2 :(得分:0)
尝试将intval与数量一起使用,因为它可能是一个字符串,而你正试图用它来做奇怪的事情:
$quantity = intval($quantity);
$update = mysql_query("UPDATE products SET stock = stock + $quantity WHERE id = $product_id") or die( mysql_error());