下午,
我在这里有一个函数,如果没有用户具有管理员角色的记录,我试图返回一个简单的值 0,如果有,则返回 1。命令行 SQL 工作得非常好,但是当通过页面运行它时,它总是返回一个值 4,这是表中的记录数。
完全糊涂了,看了这么久,有什么想法吗?正如我所说,直接在 mysql 中运行时的查询返回正确,所以我不确定为什么它每次都返回 4。
提前致谢。
function userHasRole($role)
{
include '../includes/db-connect.inc.php';
echo $_SESSION['username'];
try
{
$sql = "SELECT count(*) FROM users
INNER JOIN userrole ON users.id = userid
INNER JOIN role ON roleid = role.id;
WHERE username = :username AND role.id = :roleId";
$s = $PDO->prepare($sql);
$s->bindValue(':username', $_SESSION['username']);
$s->bindValue(':roleId', $role);
$s->execute();
}
catch (PDOException $e)
{
$error = 'Error searching for author roles.';
echo $error;
exit();
}
$row = $s->fetch();
if ($row[0] > 0)
{
return TRUE;
}
else
{
return FALSE;
}
}