我觉得很蠢,但我找不到错误...... 谢谢。
$l_sSql = 'INSERT INTO ftb2010_winners ("first_name", "last_name", "email", "dob", "token", claimed_status) VALUES (\''.$l_aData['firstName'].'\',\''.$l_aData["lastName"].'\',\''.$l_aData["email"].'\',\''.$l_aData["year"].'-'.$l_aData["month"].'-'.$l_aData["day"].'\', "token", 0;';
运行时出现错误
#1064 - 您的SQL语法出错;检查手册 对应于您的MySQL服务器 用于正确语法的版本 靠近'“first_name”,“last_name”, “电子邮件”,“dob”,“令牌”, claim_status)VALUES('Phi'在线 1
编辑......好的,谢谢......得到它,是的,我知道这是我失踪的东西
答案 0 :(得分:5)
您的值缺少一个右括号。
答案 1 :(得分:5)
最后没有右括号“)”。
答案 2 :(得分:5)
第一个错误:字段名称应该用反引号括起来,而不是引号。 (即使这样,只有当字段名称是保留的SQL字或包含特殊字符时才需要反引号。一般来说,使用反引号是一个好主意,但在你的例子中,你可以在没有它们的情况下逃脱)
第二个错误:在查询结束时缺少关闭。
可能的错误:确保您正在使用的所有变量都已正确转义。如果不这样做,将导致您的代码容易受到SQL注入攻击。 (如果没有看到更多代码,我无法判断这是否真的是一个问题)
样式问题:你在没有任何充分理由的情况下在单引号和双引号之间混合引号。即,您的某些值使用单引号,其他值使用双引号。始终如一。此外,所有那些逃脱的单引号使整个事情很难阅读!
答案 3 :(得分:4)
在MySQL中,字段和表名应该用反引号括起来,而不是用双引号括起来。
所以它应该是:
INSERT INTO ftb2010_winners (`first_name`, `last_name`, ...
答案 4 :(得分:3)
您不应将列名放在"
:
INSERT INTO ftb2010_winners (first_name, lastname, ....)
并且当然缺少)
答案 5 :(得分:2)
'
)围绕您的数据。你应该在数据中逃避刻度/撇号。