我有一个带有类型文本的常规输入字段和一个表单中的提交按钮(update_form)。单击提交按钮后,输入中的数据将发送到php脚本,该脚本应将其保存到DB并显示更新的HTML页面。一切正常,但有一点 - 我不太确定何时使用mysqli_real_escape_string。
示例:
if(isset($_POST["update_form"])) {
connectDatabase(); //just opens the connection
$name = $_POST["page_name"];
echo $name . "<br>";
$name = mysqli_real_escape_string($connection, $name);
echo $name . "<br>";
//...do the rest, queryDatabase($query);
}
我们假设我将在文本字段中输入“Tim的位置”,然后我将点击提交按钮。如果我使用上面的脚本,它将回显以下内容:
Tim\'s place
Tim\\\'s place
因此在HTML输出中它将如下所示:
Tim's place
Tim\'s place
这是什么意思?为什么在做mysqli_real_escape_string后我有一个额外的反斜杠?或者在使用POST变量时这不是必需的吗?真的很困惑。