Как корректно вставить в MySQL текст с кавычками, используя PHP?

Как корректно вставить в MySQL текст с кавычками, используя PHP? Текст, содержащий кавычки необходимо подвергнуть обработке, чтобы экранировать все кавычки.

У нас эта проблема прежде не возникала, но, видимо, на сервере поменялись настройки или новая версия PHP так строго относится к экранированию, что ни с того, ни с сего на одном из проектов перестали сохраняться данные в MySQL. Понаблюдав за проблемой, заметил, что она проявляется когда в сохраняемом тексте встречаются двойные кавычки, а когда их удаляю, сохранение проходит успешно. Изучив тонкие места, решение было найдено в следующем.

Для решения проблемы с кавычками, необходимо перед вставкой данных в базу, обработать их функцией mysql_real_escape_string:

$data = mysql_real_escape_string($data);
$query="INSERT INTO table (id,text) VALUES ('$id','$data')";

Эта функция экранирует специальные символы в строке, используемой в SQL-запросе, принимая во внимание кодировку соединения. (Подробнее смотрите)

almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.

Вы можете почитать все статьи от almix'а.



Другие статьи по этой теме:

Комментарии (0)     Подпишитесь на RSS комментариев к этой статье.