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 ); // string(10) " col1 ASC " // пример ошибки $orderby = sanitize_sql_orderby( ' col-1 ASC ' ); // bool(false)
Список изменений
| С версии 2.5.1 | Введена. |
Код sanitize_sql_orderby() sanitize sql orderby WP 6.9
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;
}