尝试此查询时收到以下错误消息:
$query .= "($tid, {$_POST['type']['$i']}, 'Y', NOW())";
您的SQL语法有错误。查看与您的MySQL服务器版本对应的手册,以便在
附近使用正确的语法(18, , 'Y', NOW())' at line 1
除了这一行,我的代码中的所有内容都有效。我知道它与$ _POST数组变量有关,但我不知道正确的语法。
如果您需要更多代码,我很乐意将其包含在内。
答案 0 :(得分:3)
您在$i
周围使用单引号是错误的:
$query .= "($tid, {$_POST['type']['$i']}, 'Y', NOW())";
这将导致$ i被字面而不是 $ i 的值(这是我认为你需要的)。
这应该有效:
$query .= "($tid, {$_POST['type'][$i]}, 'Y', NOW())";
答案 1 :(得分:2)
如果你想要更好,请帮助,显示发送post变量的代码(可能是表单或AJAX请求)。
但你的问题可能在于:
$query .= "($tid, {$_POST['type']['$i']}, 'Y', NOW())";
该帖子会评估为$_POST['type']['1']
。您可能需要$_POST['type'][1]
。
所以试试这个:
$query .= "($tid, {$_POST['type'][$i]}, 'Y', NOW())";
答案 2 :(得分:0)
如上所述。
$query .= "($tid, {$_POST['type']['$i']}, 'Y', NOW())";
应该阅读
$query .= "($tid, {$_POST['type'][$i]}, 'Y', NOW())";
很好奇你为什么要使用“{}”。
也就是说,您应该始终避免将$ _GET或$ _POST中的变量直接输入到用于查询或网站任何其他方面的代码中。
你真的应该养成习惯,或者通过预先确定的东西传递变量。
更不用说,在运行sql查询之前,您是否会转义这些变量。
看看
http://php.net/mysql_real_escape_string http://php.net/pdo.quote
如果你有时间,请调查pdo。