php isuseradmin函数

icomxhvb  于 2021-06-25  发布在  Mysql
关注(0)|答案(2)|浏览(301)

我想从mysql表中读取是否是admin。“status”行中有1或0。如果大于0,则它是管理员。
PHP:

<?php
    if($db->isUserAdmin() === TRUE) {
        echo 'Admin';
    } else{
        echo 'Noadmin'; 
    }
?>

mysqli公司:

function isUserAdmin() {

    $stmt = self::$_db->prepare("SELECT Status FROM users WHERE Session=:sid");
    $stmt->bindParam(":sid", session_id());
    $stmt->execute();

    if($stmt->rowCount() < 1) {
        return true;
    } else {
        return false;   
    }
}
8yoxcaq7

8yoxcaq71#

您检查的是查询返回的行数,而不是状态值。
如果它是admin或user,并且有一个会话,那么它将始终返回true,因为其中有一个条目 users table。如果不存在用户,则始终返回false。
您需要检查sql返回的数据,并检查 Status > 0 或者更改sql并添加一个额外的检查 Status > 0

u0njafvf

u0njafvf2#

只是为了教育大家

function isUserAdmin()
{
    $stmt = self::$_db->prepare("SELECT Status FROM users WHERE Session=?");
    $stmt->execute([session_id()]);
    return $stmt->fetchColumn(); // here is what you really need
}

if($db->isUserAdmin()) {
    echo 'Admin';
} else{
    echo 'Noadmin'; 
}

相关问题