我已经找过了,但是找不到解决这个问题的方法。
$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)
2条答案
按热度按时间f87krz0w1#
用户的id是唯一的,所以它不是,实际上我正在默默地观察(phpmyadmin,它在在线服务器上工作)并试图运行连接到本地数据库的代码。
x6yk4ghg2#
似乎是子查询的结果
不是单行,所以您应该更改
=
至IN
: