sql查询在phpmyadmin中工作-在php中不工作
我将要编写的sql查询在phpmyadmin中工作-在php中不工作,php,mysql,wordpress,Php,Mysql,Wordpress,我将要编写的WordPress插件中有一个函数(我的第一个),它应该检查给定的ID是否属于某个角色的用户('dance\u couple'在本例中为) $sc\u user\u id是在缩短代码中传递的id function user_is_dance_couple($sc_user_id){ global $wpdb; $count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $wpdb->userm
WordPress插件中有一个函数(我的第一个),它应该检查给定的ID是否属于某个角色的用户('dance\u couple'在本例中为)
$sc\u user\u id
是在缩短代码中传递的id
function user_is_dance_couple($sc_user_id){
global $wpdb;
$count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $wpdb->usermeta WHERE user_id = %d AND meta_value LIKE `%dance_couple%`", $sc_user_id));
if($count == 1){ return true; } else { return false; }
}
if (user_is_dance_couple(1)) {
// here comes what should be done if the user has the right role
}
问题:奇怪的是,我复制了函数()的一个更简单版本,并对其进行了修改。所以我唯一改变的是一些sql代码(在sql中可以正常工作),函数也可以正常工作——我不知道我做错了什么
我已经试过了:
将单引号更改为双引号“`”之间的内容
取出sting并将其添加到变量中
在列之前添加表名
谢谢你的帮助 不需要SQL查询。你可以这样做:
$user_id = 1; # or whatever user you need
$role_to_find = 'dance_couple';
$user = get_userdata( $user_id );
if( false !== $user ){
# User found, do your stuff
$user_roles = $user->roles;
# var_dump( $user_roles );
if( in_array( $role_to_find, $user_roles ) ){
echo 'User has the role';
}else {
echo 'User does not have the role';
}
}else{
echo 'User not found';
}
我认为您不能在查询和报价中使用全局对象$wpdb。我要做的是创建另一个变量,并将$wpdb->usermeta的值放入该变量中
这样:
$user = $wpdb->usermeta;
global $wpdb;
$query = "SELECT COUNT(*) FROM %d WHERE user_id = %d AND meta_value LIKE `%dance_couple%`";
$count = $wpdb->get_var($wpdb->prepare($query, $user, $sc_user_id));
或长版本:
$count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM %d WHERE user_id = %d AND meta_value LIKE `%dance_couple%`", $user, $sc_user_id));
查询的语法看起来正确,
试着这样做$string
没有做任何事情,所以它应该是removed@maya请从您的查询中删除$string
变量,然后检查它好吗?%dance\u-couple%
应该是“%dance\u-couple%
”“$string变量已消失-但这不是问题。。。之前没有(如列表中所述,这只是几次尝试中的一次)@itzmukeshy7-我尝试过-没有效果:(非常感谢-我已经有了类似的东西-但在“in_数组”中没有第二个变量-可能是纯文本杀死了它或者我犯了其他错误。