0

だから私はこれを持っています

$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構文にエラーがあります。'SELECT SUM(items_counter)FROM probid_categories WHERE items_counter> 0 AND `cate' at line 1の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

4

2 に答える 2

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'";

そうしないと、データベースはそれを適切に解析できません。

于 2012-10-04T18:02:34.930 に答える
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);
于 2012-10-04T18:01:07.843 に答える