午後、
ユーザーが管理者の役割を持っているレコードがない場合は単純な値 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;
}
}