我使用mysqli_real_escape_string来逃避单引号和双引号等,但它并没有逃避任何事情。我的代码如下
$con = mysqli_connect("ip","db","pw","db");
$formtext = $_POST['formtext'];
$formtext = mysqli_real_escape_string($con, $formtext);
mysqli_query($con, "INSERT into table (formtext) VALUES ('$formtext')")
or die();
插入表格后,'formtext'字段不包含转义符(反斜杠)。 发生这种情况的可能原因是什么?
答案 0 :(得分:2)
保存到数据库的数据将不包含"转义" 或转义序列或无关斜线。
数据库 将包含提供的实际数据 ,这是函数的要点:转义输入以供使用作为SQL语句中的SQL字符串内容。
mysqli_real_escape_string转义字符串中的特殊字符,以便在SQL语句中使用 [作为字符串文字内容],同时考虑到连接的当前字符集。
如果要点更改数据(如果是,请准确确定更改应该是什么) - 注意" real_escape"或者(更好)parameterized queries 仍然仍然使用 - 然后使用适当的函数来完成任务。