我有一个表单,其中method = post提交到表单处理程序文件,该文件将帖子写入数据库,然后将结果通过电子邮件发送给用户.
我写了一个插入语句,但是在处理表单时我遇到了错误,但不是一个数据库问题,我不确定问题是什么.这是代码 -
// MYSQL QUERY
$result = mysql_query("INSERT INTO 2009_prize_results
(name, address, address2, email, 100, 101, 102, 103, 104, 105, 106, 107, 108)
VALUES
($_POST[name],$_POST[address],$_POST[address2],$_POST[email]
,$_POST[100],$_POST[101],$_POST[102],$_POST[103],$_POST[104],$_POST[105]
,$_POST[106],$_POST[107],$_POST[108])");
if (!$result) {
die ("SQL error: " . mysql_error());
}
Run Code Online (Sandbox Code Playgroud)
而我得到的错误是 -
SQL错误:您的SQL语法中有错误; 查看与您的MySQL服务器版本对应的手册,以便在"100,101,102,103,104,105,106,107,108"附近使用正确的语法VALUES(Marty Martin,313 Orlando Av'在第1行
提交值是
name = Marty Martin
address = 313 Orlando Ave
address2 = Anytown, VA
email = foo@foo.com
100 = on
101 = off
10* are all checkboxes so are either on or off
Run Code Online (Sandbox Code Playgroud)
这里有什么问题?
请参阅:
如何从"Bobby Tables"XKCD漫画中注入SQL?
如果必须使用mysql库,请确保通过mysql_real_escape_string运行所有输入,否则使用Prepared Statements.
然后,当您将查询放在一起时,将所有VALUES包装在引号中(单个或双重将起作用).