我使用表单并通过$ _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.....
如果我添加类似"我们正在尝试新的东西"标题,它上传"我们/尝试新的东西" - 如何防止将斜杠添加到数据库中?
答案 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