$_POST 中的转义字符
Escape characters inside $_POST
我花了一个小时尝试解决这个问题,但我没有更多的解决方案。
我需要使用一些变量形成一个 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;";
$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;";
虽然这可能有效,但请考虑使用参数化方法。
请注意您的 $_POST 数组在查询中。正确语法:
for ($x = 0; $x < $counter; $x++) {
if ($x)
$p .= ',';
$p.="('','$code','" . htmlspecialchars($_POST["check".$x], ENT_QUOTES) . "','" . htmlspecialchars($_POST["procedure".$x], ENT_QUOTES) . "')";
}
我添加了 htmlspecialchars func 以在将变量发送到 SQL 服务器之前对其进行清理 - 这将防止某些可能的 SQL 注入。请阅读此内容以最好地做到这一点:
How can I prevent SQL injection in PHP?
我花了一个小时尝试解决这个问题,但我没有更多的解决方案。 我需要使用一些变量形成一个 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;";
$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;";
虽然这可能有效,但请考虑使用参数化方法。
请注意您的 $_POST 数组在查询中。正确语法:
for ($x = 0; $x < $counter; $x++) {
if ($x)
$p .= ',';
$p.="('','$code','" . htmlspecialchars($_POST["check".$x], ENT_QUOTES) . "','" . htmlspecialchars($_POST["procedure".$x], ENT_QUOTES) . "')";
}
我添加了 htmlspecialchars func 以在将变量发送到 SQL 服务器之前对其进行清理 - 这将防止某些可能的 SQL 注入。请阅读此内容以最好地做到这一点:
How can I prevent SQL injection in PHP?