wordpress元查询,比如奇怪的字符串/散列

wh6knrhe  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(287)

我正在运行一个简单的类似meta\u的查询,如下所示:

$meta_query[] = array(
    'key'     => '_department',
    'value'   => sanitize_text_field( $_REQUEST['department'] ),
    'compare' => 'LIKE'
);
// push to main WP_Query here

但奇怪的是,如果我转储查询的$wp\u query->request部分,它看起来是这样的:

( mt2.meta_key = '_department' AND mt2.meta_value LIKE '{a4eeec5aa4c896cb300f5aab299d4336f74fcb91103252699f91d781f4df916a}residential-sales{a4eeec5aa4c896cb300f5aab299d4336f74fcb91103252699f91d781f4df916a}' )

看看%是怎么被一个奇怪的散列所取代的?这对于所有类似的查找都是一样的。我没有活动的插件,在法典中找不到任何引用。
有人见过这个吗?

qgelzfjb

qgelzfjb1#

这是WordPress4.8.3以后的预期行为,因为esc\u sql()函数已被修改,现在可以对保留字符进行md5哈希运算。

echo esc_sql( "100%" );
// "100{9fa52f39262a451892931117b9ab11b5a06d3a15faee833cc75edb18b4411d11}"

这样做是为了修复4.8.3版本之前的sql注入攻击漏洞。
如果需要,可以通过以下调用获取转义的值:

echo $wpdb->remove_placeholder_escape( esc_sql( "100%" ) );
// "100%"

相关问题