我有一个表单,其中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()); }
而我得到的错误是 -
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
这里有什么问题?
请参阅:
如何从"Bobby Tables"XKCD漫画中注入SQL?
如果必须使用mysql库,请确保通过mysql_real_escape_string运行所有输入,否则使用Prepared Statements.
然后,当您将查询放在一起时,将所有VALUES包装在引号中(单个或双重将起作用).