sanitize_sql_orderby() WP 2.5.1

Перевіряє, чи можна використовувати переданий рядок в ORDER BY частини SQL запиту.

Приймає одну або більше колонок з або без порядку сортування (ASC/DESC). Наприклад: column_1, column_1, column_2, column_1 ASC, column_2 DESC. Також розуміє RAND().

Хуків немає.

Повертає

Строку|false. Поверне переданий рядок або false, якщо він не підходить.

Використання

sanitize_sql_orderby($orderby);
$orderby
(рядок) (обов’язковий)
Рядок, який потрібно перевірити і повернути, якщо він підходить.

Приклади

0

#1 Перевірка ORDER BY частини SQL запиту

// приклад проходження перевірки
$orderby = 'col1 ASC';
$ orderby = sanitize_sql_orderby ($ orderby);
var_dump($orderby); // string(10) "col1 ASC"

// приклад помилки
$orderby = sanitize_sql_orderby( 'col-1 ASC'); // bool (false)

список змін

З версії 2.5.1Введено.

Код sanitize_sql_orderby() WP 6.0.2

function sanitize_sql_orderby( $orderby ) {
	if ( preg_match( '/^s*(([a-z0-9_]+|`[a-z0-9_]+`)(s+(ASC|DESC)))?s*(,s* (?=[a-z0-9_`])|$))+$/i', $orderby ) || preg_match( '/^s*RAND(s*)s*$/i' , $ orderby ) ) {
		return $orderby;
	}
	return false;
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *