esc_sql

Подготавливает строку к использованию в SQL запросе. Защищает от SQL инъекций.

Работает на основе PHP функции – addslashes(), только обрабатывает массивы.

Почти всегда эту функцию можно заменить на $wpdb->prepare() и такая замена рекомендуется, так как она помимо экранирования исправляет некоторые ошибки форматирования. Использовать esc_sql() может быть удобнее в тех редких случаях, когда для использования $wpdb->prepare() нужно писать дополнительный код.

Используйте функцию правильно! Она рассчитана только на обработку строк, которые потом будут использованы в SQL запросе внутри кавычек: field = ‘$esc_value’, а не field = $esc_value. Если очищенное значение не обрамляется кавычками, то из него можно сделать инъекцию. Например строка ORDER BY $esc_value потенциально опасна, потому что функция не очистит если в значении: числа без кавычек, называния полей или что-то еще что не имеет кавычек…

esc_sql() – это обертка для метода $wpdb->_escape(). Т.е. где удобно можно использовать этот метод взамен.

Хуков нет.

Возвращает

Очищенную строку.

Использование

$data = esc_sql( $data );
$data(строка) (обязательный)
Неочищенная строка, которая будет использоваться в аргументах SQL запроса.

Примеры

#1 Подготовка строки для использования в SQL запросе

<?php
function esc_sql( $data ) {
	global $wpdb;
	return $wpdb->_escape( $data );
}