mysql_real_escape_string仍显示\

时间:2012-01-17 13:02:49

标签: php mysql-real-escape-string

我正在尝试安全地添加帖子,但我不能为像不这样的单词添加撇号。当我使用下面的代码时,它会将其添加到数据库中,例如“don \ t”,但是当我想显示它时,我只希望它显示“不要”。环顾四周,许多人都说你不需要做任何事情,只需从数据库中调用它,其他人就是在做其他事情。显然,我不能放弃它,因为它仍然显示为“不要”

$stmt = db::connect()->prepare("INSERT INTO Posts (postedByUserID, postTitle, postCatID, postDate, postContent) VALUES ( ?, ?, ?, ?, ?)");
$stmt->bind_param('isiss', $inUserID, mysql_real_escape_string($inPostTitle), $inPostCatID, $postDate, mysql_real_escape_string($inPostContent));
$stmt->execute();

2 个答案:

答案 0 :(得分:3)

据我了解 - 如果您对数据库使用bind_param样式输入,则无需转义它。它会为你逃脱 - 本质上你已经逃脱了两次?

答案 1 :(得分:0)

在将htmlentities($ postVariable)传递给您的数据库之前使用它。 当您从数据库中检索它时,使用html_entity_decode($ postVariable),它应显示"不要"#34;正常。