0

私はコードのこの部分を持っています:

$result = mysql_query("SELECT * FROM posts WHERE id = '$id'") or die (mysql_error());
$rec = mysql_fetch_array($result) or die (mysql_error());
$like = $rec['like'];
$like += 1;
mysql_query("UPDATE posts SET like = '$like' WHERE id = '$id'") or die (mysql_error());

そしてこのエラーを返します:

SQL構文にエラーがあります。MySQLサーバーのバージョンに対応するマニュアルで、「like = '1' WHERE id ='43''1行目」の近くで使用する正しい構文を確認してください。

4

4 に答える 4

4

LIKE予約されたMySQLキーワードです。列名をキーワードと間違えないように引用してください。

... SET `like` = ...
于 2012-07-02T15:16:22.707 に答える
1

予約キーワードを使用していますLIKE

このようにしてみてください:

"UPDATE `posts` SET `like` = '$like' WHERE `id` = '$id'"
于 2012-07-02T15:16:04.243 に答える
0

「like」は予約語です。列に名前を付けるために使用することはお勧めしません。列の名前を変更できない場合は、バックチェックでエスケープしてUPDATEステートメントを変更します

`like`
于 2012-07-02T15:20:53.787 に答える
0

問題は、mysqlキーワードのように、データベースの列名を変更するか、バッククォートで囲むことです。

また、mysql_関数は使用しないでください。mysqliまたはPDOを使用してください。これは、安全ではなく、時代遅れであるためです。

于 2012-07-02T15:18:01.067 に答える