我有一个我想要执行的UPDATE查询。
但在我们更新数据库中的数量之前,需要满足2个条件。
首先,sessions_id()必须与sessionid列中的一个sessionid匹配,其次,产品描述必须与sessionid对应的产品描述匹配。
这就是我所拥有的:
mysql_query(UPDATE cart
SET quantity = $q,
WHERE sessionid = "'.session_id().'"
AND description = $d') or die(mysql_error());
现在,它给了我以下错误:
您的SQL语法有错误;
查看与您的MySQL服务器版本对应的手册,以便在第1行'WHERE sessionid =“bqlbh5rdogbhmq70skhtkbvmb0”AND description = $ d'附近使用正确的语法
但是,我已经直接从W3Schools复制了这个更新查询,所以它必须是正确的,对吧?任何帮助都将不胜感激。
答案 0 :(得分:3)
由于WHERE语句之前的','符号而发生错误。正确的查询是:
mysql_query( "UPDATE cart SET quantity = " . $q . " WHERE sessionid = "' . session_id( ) . '" AND description = " . $d . "" ) or die( mysql_error( ) );
答案 1 :(得分:1)
删除,
$q
(逗号)
答案 2 :(得分:1)
您粘贴的代码格式错误,我怀疑您的应用中使用的代码。
$sql = sprintf(
"UPDATE `cart` SET `quantity` = '%d' WHERE `sessionid` = '%s' AND `description` = '%s'",
$q,
session_id(),
$d
);
mysql_query($sql);
答案 3 :(得分:0)
看起来应该是这样的:
mysql_query("UPDATE cart SET quantity = $q WHERE sessionid='" .session_id(). "' AND description = '$d'") or die(mysql_error());
答案 4 :(得分:0)
此处您的单引号问题.'" AND description=$d')
并且未解析$ d。这将导致错误的SQL查询。
将单引号更改为双引号或仅使用字符串追加.
附加$d
的值,而不是文字$ d
示例:
$a = 5;
$b = 'a is $a'; // a is $a;
$c = "a is $a"; // a is 5