Что использовать вместо mysql_escape_string() в Drupal 7?

Начиная с версии PHP 4.3.0, функция mysql_escape_string() считается устаревшей. PHP будет выдавать соответствующее предупреждение.

Deprecated function: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead.

Т.е. рекомендуется использовать вместо неё — mysql_real_escape_string(). Но та в свою очередь также устарела, начиная с версии PHP 5.5.

Deprecated function: mysql_real_escape_string(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead.

Т.е. если вы используете PHP версии 5.6 и выше, то рекомендуется использовать соответствующие функции библиотек баз данных — mysqli или PDO.

При работе с базой в Drupal обычно не приходится использовать функции подготовки аргументов, все необходимые операции уже заложены в соответствующие классы при выполнении запросов к базе.

Но если ваш запрос требует сложной подготовки, то вы наверняка конструируете его в чистом PHP. Тогда потребуется обращение к аналогам mysql_escape_string().

Решение

Drupal 7 расширяет класс PDO с помощью, по сути, интерфейса (абстрактного класса)  DatabaseConnection (/includes/database/database.inc). Методы которого реализуются в соответствующих классах-драйверах подключения к базе данных.

Но в основе лежит PDO, так что необходимо лишь получить доступ к текущему подключению и вызвать метод PDO::quote(), как аналог mysql_escape_string().

Вот пример использования:

PDO::qoute() добавляет одинарные кавычки и блокирует спец символы внутри строки.

Мало букафф? Читайте есчо !

Как получить определения из конфигурационных файлов схем Drupal

Апрель 6, 2025 г.

Drupal config API позволяет не только прочитать сами настройки, но и файлы их определений. В общем то это очевидно, покажу как это делается. Допустим ...

Читать

Drupal "семерочка"

Май 10, 2011 г.

За период примерно в год я собрал около 100-150 сайтов на drupal 6. Но в январе 2011 года была выпущена седьмая версия, и постоянно крутились мысли - как бы поглядеть : что есть сиё. При этом нет какой то насущной необходимости, т.к. подборка модулей ...

Читать

Работаем с меню в drupal 7

Ноябрь 6, 2015 г.

В статье пойдет речь от системе меню в Drupal, некоторых полезных модулях и примерах программирования. Хоть речь пойдет о Drupal 7, и примеры подготовлены ...

Читать

Настраиваем мета информацию о картинке для соц. сетей в Drupal 7

Сентябрь 27, 2016 г.

Когда посетители делятся ссылкой на ваш сайт в какой нить соц.сети, то программа со стороны соц. сети (Facebook или вКонтакте) пытается собрать информацию ...

Читать
 

Комментарии к «Что использовать вместо mysql_escape_string() в Drupal 7?»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: