1

我在以下代码中遇到 MySQL 语法错误:

$addcompany = mysql_query("INSERT INTO company (method, category, email, password,   
companyname, phone, address, state, zip, ratingcount, ratingscore, usage, date)
VALUES ('$method','$category','$email','$temp_encrypted_password',
'$companyname','$phone','$address','$state','$zip','0','0','0',CURDATE()) ")
or die(mysql_error());

所以声明死了。MySQL错误告诉我:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL 
server version for the right syntax to use near 'usage, date) VALUES 
('referral','referral','email@gmail.com','d90ccafeea7983' at line 1

我检查了我的表,所有列名都是正确的,并且似乎与我尝试插入的内容与允许输入到列中的内容没有任何冲突。

所以在这一点上我很恼火,因为我无法弄清楚什么一定是一个简单的错误。很恼火,希望这里有人能快速指出我的权利。

谢谢你的时间

4

3 回答 3

6

usage保留字,必须使用反引号进行转义。

... ratingscore, `usage`, date) ...
于 2013-02-08T23:06:28.073 回答
1

尝试在你的字段名周围加上反引号:`fieldname1`,`fieldname2`。这可以防止 mysql 关键字被视为保留关键字。

此外,您应该过滤您的用户输入。但这与您的问题无关。只是安全提示。;-)

于 2013-02-08T23:09:12.197 回答
0

试试这个

(method, category, email, password,   
companyname, phone, address, state, zip, ratingcount, ratingscore, \usage\, date)

你不能'usage'直接使用它作为它的保留字

于 2013-02-08T23:07:52.440 回答