wpdb::_escape()
Экранирует строку или значения массива для использования в 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) (обязательный)
- Строка или массив значений для экранирования.
Примеры
#1 Экранирование массива значений
global $wpdb; $values = $wpdb->_escape( [ 'name' => "O'Reilly", 'status' => 'publish', ] ); /* Array ( [name] => O\'Reilly [status] => publish ) */
Список изменений
| С версии 2.8.0 | Введена. |
Код wpdb::_escape() 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;
}