sanitize_sql_orderby

函数
sanitize_sql_orderby ( $orderby )
参数
  • (string) $orderby Order by clause to be validated.
    Required:
返回值
  • (string|false) Returns $orderby if valid, false otherwise.
定义位置
相关方法
sanitize_usersanitize_title_for_querysanitize_keysanitize_termsanitize_title
引入
2.5.1
弃用
-

sanitize_sql_orderby: 这是一个WordPress的函数,可以对SQL查询中使用的ORDER BY子句进行净化。它通过验证order by列和订单方向来防止SQL注入攻击: 这个函数需要一个参数,即需要净化的order by子句。

确保一个字符串是有效的SQL’order by’子句。

接受一个或多个列,有或没有排序顺序(ASC / DESC)。例如:’column_1′, ‘column_1, column_2’, ‘column_1 ASC, column_2 DESC’ 等。

也接受’RAND()’。

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

常见问题

FAQs
查看更多 >