我写了这段代码:
mysql_query("INSERT INTO test (user_id, word_id, right) VALUES ('6', '23', '5' )") or die(mysql_error());
但是有错误信息提示:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'right) VALUES ('6', '23', '5' )' 附近使用正确的语法
我做错了什么?
right
是一个保留字,像这样转义它:
INSERT INTO test (user_id, word_id, `right`) VALUES ('6', '23', '5' )
请注意:1
不鼓励使用此扩展(mysql_query)。相反, 应该使用MySQLi 或PDO_MySQL扩展。另请参阅MySQL:选择 API 指南和相关的常见问题解答以获取更多信息。此功能的替代方案包括:
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());
试试这个 :::RIGHT
是已知关键字,试试反引号
INSERT INTO test (`user_id`, `word_id`, `right`) VALUES ('6', '23', '5' )
INSERT INTO `test` (`user_id`, `word_id`, `right`) VALUES ('6', '23', '5' )