$_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?