WordPress как на ладони
wordpress jino

esc_sql() WP 2.8

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

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

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

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

Внимание! Функция рассчитана только на обработку строк, которые потом будут использованы в SQL запросе внутри кавычек: field = '$esc_value', а не field = $esc_value.

Если очищенное значение не в кавычках, то из него можно сделать инъекцию. Например строка ORDER BY $esc_value опасна...

Хуков нет.

Возвращает

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

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

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

Примеры

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

$name   = esc_sql( $name );
$status = esc_sql( $status );

$wpdb->get_var( "SELECT something FROM table WHERE foo = '$name' and status = '$status'" );

тоже самое с использованием $wpdb->prepare():

$wpdb->get_var(
	$wpdb->prepare( "SELECT something FROM table WHERE foo = %s and status = %s", $name, $status )
);

Заметки

esc_sql() до версии 3.6 была алиасом метода $wpdb->escape(), который затем был отменен.

Код esc sql: wp-includes/formatting.php VER 4.9.1

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

Cвязанные функции

Из метки: esc_ (очистка валидация)

Еще из метки: query (запрос)

Еще из раздела: SQL

Сайт с играми

Также советуем посетить сайт с играми playxgames.ru, где можно найти много интересных игр.

playxgames.ru

esc_sql Комментариев нет

    Здравствуйте, !

    Ваш комментарий
    Предпросмотр