wpdb::_escape()publicWP 2.8.0

Экранирует строку или значения массива для использования в SQL-запросе.

Массивы обрабатываются рекурсивно. Ключи и структура массива сохраняются.

Метод используется внутри esc_sql(). Обычно следует применять wpdb::prepare(), а не вызывать этот метод напрямую.

Метод предназначен только для строковых значений, заключённых в кавычки внутри SQL-запроса. Он не защищает имена таблиц, столбцов, SQL-операторы и другие части запроса.

Метод не добавляет кавычки. Символы % в результате могут заменяться внутренними плейсхолдерами WordPress.

Метод класса: wpdb{}

Работает на основе: wpdb::_real_escape()
Основа для: esc_sql()
1 раз — 0.00002 сек (очень быстро) | 50000 раз — 0.21 сек (очень быстро)

Хуков нет.

Возвращает

Строку|Массив.

  • строку - экранированная строка.
  • массив - массив с рекурсивно экранированными значениями.

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

global $wpdb;
$wpdb->_escape( $data );
$data(string|array) (обязательный)
Строка или массив значений для экранирования.

Примеры

0

#1 Экранирование массива значений

global $wpdb;

$values = $wpdb->_escape( [
	'name'   => "O'Reilly",
	'status' => 'publish',
] );

/*
Array (
	[name]   => O\'Reilly
	[status] => publish
)
*/

Список изменений

С версии 2.8.0 Введена.

Код wpdb::_escape() WP 7.0.3

public function _escape( $data ) {
	if ( is_array( $data ) ) {
		foreach ( $data as $k => $v ) {
			if ( is_array( $v ) ) {
				$data[ $k ] = $this->_escape( $v );
			} else {
				$data[ $k ] = $this->_real_escape( $v );
			}
		}
	} else {
		$data = $this->_real_escape( $data );
	}

	return $data;
}