Всякий раз, когда я добавляю одинарную кавычку (') или двойную кавычку (") в поле формы PHP, она будет сохранена в моей базе данных MySQL как "
/ '
. Как сохранить «настоящие» «кавычки» в моей БД?
Я пытался предотвратить это, установив безопасное соединение Mysql через PDO, но, похоже, оно не работает должным образом.
Итак, вот важная часть моего кода:
$insert_hello = filter_var($_POST['hello'], FILTER_SANITIZE_STRING);
$dbh->query("SET NAMES 'utf8'");
$stmt = $dbh->prepare("INSERT INTO testtable (data) VALUES (:hello)");
$stmt->bindParam(':hello', $insert_hello, PDO::PARAM_STR);
$stmt->execute();
Некоторая справочная информация:
Сервер работает на PHP v5.2.12-0.
Движок DBStorage — это InnoDB, а его кодировка клиента, соединения, результатов и системы установлена на utf8.
Для поля БД задана сортировка utf8_unicode_ci.
Волшебные кавычки отключены через .htaccess.
Заранее спасибо!
С уважением, Jroen
$stmt->bindParam(...)
, поэтому нет необходимости вfilter_var()
... Просто попробуйте изменить эту первую строку на$inset_hello = $_POST['hello'];
и посмотреть, что произойдет при публикации текста, содержащего одинарные кавычки.. - person redShadow   schedule 29.07.2011