MySQL と php を介してテーブル内のいくつかの値を更新しようとしていますが、うまくいきません: これが私のコードです:
$update = "UPDATE $table
SET `active`='1' AND `title`='Disabled By Moderator'
WHERE `id`='".$ad_id."' LIMIT 1";
複数の列を更新する場合は、カンマで区切ります。
$update = "UPDATE $table SET `active`='1' , `title`='Disabled By Moderator' WHERE `id`='".$ad_id."' LIMIT 1";
更新中1
または0
列上にactive
ある理由は、ステートメントがブール演算を実行しているためです。現在のステートメントで影響を受ける唯一の列は column のみActive
です。列title
はブール演算の一部です。
グループ化されている場合、更新ステートメントは次のようになります。
UPDATE $table
SET active = (1 AND (title = 'Disabled By Moderator'))
WHERE id= 'val'
LIMIT 1
補足として、変数のSQL Injection
値が外部から取得された場合、クエリは脆弱です。予防方法については、以下の記事をご覧ください。を使用すると、値を一重引用符で囲む必要がなくなります。PreparedStatements