0

SQL 構文にエラーがあります。1 行目の near 'like = '0 +1' WHERE wall_id = '20'' を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

$sql = mysql_query("UPDATE wall SET like = '$nelike'  WHERE wall_id = '$id' " );   

if($sql)
    echo "Success;
else
    echo "something wrong<br/>" . mysql_error();

このエラー メッセージが表示されるのはなぜですか?

4

3 に答える 3

2

も MySQL キーワードであるため、列likeをバッククォートでカプセル化する必要があります。like

$sql = mysql_query("UPDATE wall SET `like` = '$nelike'  WHERE wall_id = '$id' " );

名前にスペースが含まれる列にもバッククォートを適用する必要があります。

また、データをエスケープすることも悪い考えではありません (知らなかった場合)。

$sql = mysql_query("UPDATE wall 
SET `like` = '" . mysql_real_escape_string($nelike) . "'  
WHERE wall_id = '" . mysql_real_escape_string($id) . "'" );
于 2012-05-25T02:56:31.260 に答える
1

LIKESQL キーワードです。フィールド名として使用する場合は、バックティックに入れる必要があります。

UPDATE wall SET `like` = '$nelike'  WHERE wall_id = '$id'
于 2012-05-25T02:56:42.240 に答える
0

エラーは、mysqlでRESERVED WORDを使用していて、バックティックを使用してエスケープしなかったことです。

$sql = mysql_query("UPDATE wall SET like = '$nelike'  WHERE wall_id = '$id' " ); 

次のように書く必要があります

$sql = mysql_query("UPDATE wall SET `like` = '$nelike'  WHERE wall_id = '$id' ");
于 2012-05-25T03:09:34.700 に答える