所以我有这个
$sql_totalbooknumber = "SELECT SUM(items_counter) FROM probid_categories WHERE items_counter>0 AND `category_id <>355";
$sql_updatebooknumber = "UPDATE `probid_categories` SET `items_counter` = ".$sql_totalbooknumber." WHERE `category_id` = '355'";
if (!mysql_query($sql_totalbooknumber))
{
die('Error: ' . mysql_error());
};
if (!mysql_query($sql_updatebooknumber))
{
die('Error: ' . mysql_error());
};
不知何故,他们单独工作(如果我注释掉一个或另一个),但当我合并它们时,我得到了这个错误
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在'SELECT SUM(items_counter)FROM probid_categories WHERE items_counter&gt; 0和'cate'在第1行附近使用正确的语法
答案 0 :(得分:2)
$sql_totalbooknumber
是包含查询的字符串。不是该查询的结果。
您希望将整数传递给$sql_updatebooknumber
,但是您将包含第一个查询的字符串传递给它。
试试这个:
$sql_totalbooknumber = "SELECT SUM(items_counter) FROM probid_categories WHERE items_counter>0 AND `category_id` <>355";
$result = mysql_query($sql_totalbooknumber);
list($id) = mysql_fetch_array($result);
$sql_updatebooknumber = "UPDATE `probid_categories` SET `items_counter` = ".$id." WHERE `category_id` = '355'";
mysql_query($sql_updatebooknumber);
答案 1 :(得分:2)
你正在做一个子查询;你真的需要用括号括起来:
$sql_totalbooknumber = "SELECT SUM(items_counter) FROM probid_categories WHERE items_counter>0 AND `category_id` <>355";
$sql_updatebooknumber = "UPDATE `probid_categories` SET `items_counter` = (".$sql_totalbooknumber.") WHERE `category_id` = '355'";
否则,数据库无法正确解析它。