sanitize_sql_orderby()
Перевіряє, чи можна використовувати переданий рядок в 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
(рядок) (обов’язковий) - Рядок, який потрібно перевірити і повернути, якщо він підходить.
Приклади
#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() 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; }