私はこのコードを書きました:
mysql_query("INSERT INTO test (user_id, word_id, right) VALUES ('6', '23', '5' )") or die(mysql_error());
しかし、エラーメッセージが表示されます:
SQL 構文にエラーがあります。使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。
私は何を間違えましたか?
right
は予約語です。次のようにエスケープします。
INSERT INTO test (user_id, word_id, `right`) VALUES ('6', '23', '5' )
注意: 1
この拡張 (mysql_query) の使用は推奨されません。代わりに、MySQLi またはPDO_MySQL 拡張機能を使用する必要があります。詳細については、MySQL: API ガイドの選択および関連する FAQ も参照してください。この機能の代替手段は次のとおりです。
mysqli_query() PDO::query()
1: PHPマニュアルから引用: mysql_query
right
予約済みの9.3. Reserved Words
キーワードを使用する場合は予約済みのキーワードです。エスケープする必要があります。試してみてください
mysql_query("INSERT INTO test (user_id, word_id, `right`) VALUES ('6', '23', '5' )") or die(mysql_error());
INSERT INTO `test` (`user_id`, `word_id`, `right`) VALUES ('6', '23', '5' )
これを試してください :::RIGHT
は既知のキーワードです。バッククォートを試してください
INSERT INTO test (`user_id`, `word_id`, `right`) VALUES ('6', '23', '5' )