我正在使用mysql_real_escape_string来清理插入和更新查询(邮政地址)中使用的数据。但事情是,当我有这样的东西“25 \ 5”时,输出最终为25.Mysql删除了什么后的25。我知道它可以输入为25/5,但有些用户可能故意输入它为25 \ 5。如何以25 \ 5本身保存和检索它。感谢。
修改
$address = "23\5, Elm Street";
$clean = mysql_real_escape_string($address);
$data = mysql_query("insert into students (address) values ('$clean') ");
if (!$data) {
echo "Not ok" .mysql_error();
}else {
echo "Ok";
} $data = mysql_query("select address from students");
while ($info=mysql_fetch_assoc($data)){
print $info["address"];
print '<br>';
}
答案 0 :(得分:1)
问题在于: “25 \ 5,榆树街”
我把它改为'25 \ 5,Elm Street' - &gt;注意单引号。
与表单一起使用时也可以正常工作。
现在只使用mysql_real_escape_string函数正常工作。
感谢所有发帖人员:)
答案 1 :(得分:0)
在逃避之前,您可以使用转义反斜杠或正斜杠替换反斜杠。
$cleared = str_replace("\\", "\\\\", $input);
// or
$cleared = str_replace("\\", "/", $input);