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.7.1
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; }