我在以下代码中遇到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
我已检查过我的表格,并且所有列名称都是正确的,并且似乎与我尝试插入的内容与允许输入到列中的内容没有任何冲突。
所以我在这一点上非常恼火,我无法弄清楚什么是一个简单的错误。很生气,希望有人能够快速向我指出。
感谢您的时间
答案 0 :(得分:6)
usage
是reserved word,必须使用反引号进行转义。
... ratingscore, `usage`, date) ...
答案 1 :(得分:1)
尝试在字段名称周围添加反引号:`fieldname1`,`fieldname2`。这可以防止将mysql关键字视为保留关键字。
此外,您应该过滤您的用户输入。但这与你的问题无关。只是提示安全。 ; - )
答案 2 :(得分:0)
试试这个
(method, category, email, password,
companyname, phone, address, state, zip, ratingcount, ratingscore, \usage\, date)
您无法直接使用'usage'
作为保留字