我正在尝试使用mysql LIKE从数据库中获取结果,但是在wordpress中,它在这里不起作用是我正在尝试的代码

//this is what i am putting in where clause.
$state = $_POST['state'];
//table name.
$table_name = $wpdb->prefix . 'userprofile';
//trying but this is returning empty
$q = 'SELECT * FROM ' . $table_name . 'WHERE state LIKE \'%' . esc_sql( like_escape( $state ) ) . '%\'';
echo $q;
$result = $wpdb->get_results($q);
if (empty($result)) {
    echo "the result is empty";
}
//returns empty array.
print_r($result);

最佳答案

您缺少空格:

$q = 'SELECT * FROM ' . $table_name . 'WHERE[..snip..]
                                       ^---here


这意味着你正在生产

SELECT * FROM whateveruserprofileWHERE


这是无效的SQL。

关于php - WordPress自定义数据库查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31124736/

10-16 18:52