2012-01-17 2 views
0

Я пытаюсь безопасно добавлять сообщение, но я не хочу добавлять апострофы для слов, например, нет. Когда я использую приведенный ниже код, он добавляет его в базу данных, например «don \ t», но когда я хочу ее отображать, я хочу, чтобы он показывал «не делать». Оглядываясь вокруг, многие люди говорят, что вам не нужно ничего делать, просто позвоните ему из базы данных, а другие говорят о других вещах. Ясно, что я не могу просто оставить его, потому что он все еще показывает, как «Дон \ т»mysql_real_escape_string все еще показывает

$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(); 
+0

Вы используете 'PDO'? – J0HN

+0

Нет, я использую mysqli –

ответ

3

Как я понимаю - вам не нужно, чтобы избежать этого, если вы используете вход bind_param стиля в базу данных. Это спасет вас от вас - в сущности, вы избежали его дважды?

+0

Хорошо, но когда я удаляю mysql_real_escape_string, это не позволит мне помещать не в сообщение. Любая причина? Нет Я использую msqli –

+0

Нет проблем, он работает сейчас. Я удалил mysql_real_escape_string, и теперь он работает. Странно, что это было не раньше. –

+0

Проверьте, что вы используете bind_param везде, где вы храните сообщение? Проверить начальное создание и редактирование и т. Д.? –

0

Используйте htmlentities ($ postVariable) перед тем, как передать его в вашу базу данных. Когда вы извлекаете его из базы данных, используйте html_entity_decode ($ postVariable), и он должен правильно отображать «не надо».

Смежные вопросы