这个sql语句有什么问题?

Bil*_*ill -8 php mysql sql

我觉得很蠢,但我找不到错误......谢谢.

$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;';
Run Code Online (Sandbox Code Playgroud)

运行它时出现错误

#1064 - 您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在'"first_name","last_name","email","dob","token",claim_status附近使用正确的语法.值(第1行的'Phi')

编辑......好的,谢谢......得到它,是的,我知道这是我失踪的东西

tay*_*onr 5

您的值缺少一个右括号.


eny*_*nyo 5

最后没有右括号")".


Spu*_*ley 5

第一个错误:字段名称应该用反引号括起来,而不是引号.(即使这样,只有当字段名称是一个保留的SQL字或包含特殊字符时才需要反引号.一般来说,使用反引号是个好主意,但在你的例子中你可以在没有它们的情况下逃脱)

第二个错误:在查询结束时缺少关闭.

可能的错误:确保您正在使用的所有变量都已正确转义.如果不这样做,将导致您的代码容易受到SQL注入攻击.(如果没有看到更多代码,我无法判断这是否真的是一个问题)

风格问题:你在没有任何充分理由的情况下在单引号和双引号之间混合引号.即,您的某些值使用单引号,其他值使用双引号.始终如一.此外,所有那些逃脱的单引号使整个事情很难阅读!