mysqli_real_escape_string()在数据库插入上添加斜杠

时间:2013-12-28 09:44:34

标签: php mysqli

我使用表单并通过$ _POST将信息传递到数据库中,我在上传之前使用mysqli_real_escape,但它正在为上传的文本添加斜杠。这是我的代码:

$type = "new";
$subtype = "news";
$title = ucwords(strtolower($_POST["title"]));
$title = mysqli_real_escape_string($con, $title);
$article = $_POST["article"];
$article = mysqli_real_escape_string($con, $article);

$insert_news_sql = "INSERT INTO news.....

如果我添加类似"我们正在尝试新的东西"标题,它上传"我们/尝试新的东西" - 如何防止将斜杠添加到数据库中?

3 个答案:

答案 0 :(得分:1)

删除斜杠总是使用stripslashes ..

$title = ucwords(strtolower(stripslashes($_POST["title"])));
$article = stripslashes($_POST["article"]);

答案 1 :(得分:1)

您可能正在使用旧版本的PHP并启用了魔术引号。见here。你的POST变量上的魔术引号会自动转义为mysql,因此调用mysql_real_escape_string会导致双重转义,这就是你在数据库中获得反斜杠的原因。

答案 2 :(得分:-1)

他们真的在数据库中,还是只是看着转义的字符串?

创建新应用程序时,不应再使用mysql_ *函数。相反,请使用prepared statements