mysql_real_escape_string和邮政地址数据

时间:2010-09-10 14:08:56

标签: php mysql

我正在使用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>';
}

2 个答案:

答案 0 :(得分:1)

问题在于: “25 \ 5,榆树街”

我把它改为'25 \ 5,Elm Street' - &gt;注意单引号。

与表单一起使用时也可以正常工作。

现在只使用mysql_real_escape_string函数正常工作。

感谢所有发帖人员:)

答案 1 :(得分:0)

在逃避之前,您可以使用转义反斜杠或正斜杠替换反斜杠。

$cleared = str_replace("\\", "\\\\", $input);
// or
$cleared = str_replace("\\", "/", $input);