我正试图解决这个问题一个小时,我没有更多的解决方案。 我需要使用一些变量形成一个sql语句,我想我需要转义$ _POST中的引号,因为我得到一个错误(解析错误:语法错误,意外''')
帮助!! 感谢
$counter=$_POST["counter"];
$x=1;
$p="('','$code','$procedure0','$check0')";
while($x<$counter)
{
$p.=",('','$code','$_POST["check".$x]','$_POST["procedure".$x]')";
$x++;
};
...
$sql="INSERT INTO `proceduri` VALUES $p;";
答案 0 :(得分:1)
请注意你的$ _POST数组在查询中。正确的语法:
for ($x = 0; $x < $counter; $x++) {
if ($x)
$p .= ',';
$p.="('','$code','" . htmlspecialchars($_POST["check".$x], ENT_QUOTES) . "','" . htmlspecialchars($_POST["procedure".$x], ENT_QUOTES) . "')";
}
我在将变量发送到SQL服务器之前添加了htmlspecialchars func来清理变量 - 这将阻止一些可能的SQL注入。请阅读本文以做到最好:
答案 1 :(得分:0)
$counter = $_POST["counter"];
$x = 1;
$p = "('','$code','$procedure0','$check0')";
while($x<$counter) {
$p.= ",('','$code','{$_POST["check".$x]}','{$_POST["procedure".$x]}')";
$x++;
};
...
$sql="INSERT INTO `proceduri` VALUES $p;";
虽然这可能有效,但请考虑使用参数化方法。