php pdo返回错误结果

8i9zcol2  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(349)

我已经找过了,但是找不到解决这个问题的方法。

$sql = "select count(*) as rule_count from AdminRules where FunctionName = :fn_name and UserLevel in (select user_type from users where user_id = :usid)";
    $query = $this->db->prepare($sql);
    $parameters = array(':fn_name' => $func_name , ':usid' => $user_id );

    if (!$query->execute($parameters)){
        return False;
    }
     echo '[ PDO DEBUG ]: ' . Helper::debugPDO($sql, $parameters);  exit();
    return  ($query->fetch()->rule_count >= 1)?True:False;

pdo::debug的结果:
[pdo debug]:选择count(*)作为adminrules中的rule\u count,其中functionname='admin\u control'和userlevel in(从user\u id='2'的用户中选择user\u type)
查询结果为0:
数组([规则计数]=>0)
但是,我在phpmyadmin its中运行相同的查询(rule\u count=1)

f87krz0w

f87krz0w1#

用户的id是唯一的,所以它不是,实际上我正在默默地观察(phpmyadmin,它在在线服务器上工作)并试图运行连接到本地数据库的代码。

x6yk4ghg

x6yk4ghg2#

似乎是子查询的结果

select user_type 
from users 
where user_id = :usid

不是单行,所以您应该更改 =IN :

$sql = "select count(*) as rule_count from AdminRules where FunctionName =:fn_name and UserLevel IN (select user_type from users where user_id = :usid)";

相关问题