获取用户权限数据(PDO)


Get User Permission Data (PDO)

我想做的是让一个函数获得用户权限级别,如下所示。

function userPermission($level, $conn){
    try{
        $sql = "SELECT * FROM `users` WHERE username = :Player AND level = :Level ";
        $s = $conn->prepare($sql);
        $s->bindValue(":Player", $_SESSION['username']);
        $s->bindValue(":Level", $level);
        $s->execute();
        return true;
    } catch(PDOException $e) {
            error_log("PDOException: " . $e->getMessage());
            return false;
        }   
}

,一旦我进入页面,并输入代码,应该在这个函数的功能。它根本不起作用。

这是我输入的代码
 <?php if (!userPermission('0', $conn) == 2) {
       echo '<input type="radio" id="tab-7" name="tab-group-1">
       <label for="tab-7">Permissions</label>';
    } else {
       echo '<input disabled=disabled type="radio" id="tab-7" name="tab-group-1">
       <label id="disabled" for="tab-7">Permissions</label>';
    }
    ?>

0是用户的当前级别我用它作为测试,对于== 3这是为了访问选项卡

必须的等级无论如何,我要么做错了,要么我不知道我在做什么。我没有得到任何错误,但我输入的代码似乎不可靠。

您的代码只是执行,但不返回查询结果。我修改了你的代码作为一个例子

function userPermission($username,$level, $conn){
    try{
        $sql = "SELECT `user_permission` 
                FROM `users` 
                WHERE username = :username AND level = :Level ";
        $s = $conn->prepare($sql);
        $s->bindValue(":username", $username);
        $s->bindValue(":level", $level);
        $s->execute();
        $row = $s->fetch();
        return $row['user_permission'];
    } catch(PDOException $e) {
            error_log("PDOException: " . $e->getMessage());
            return -1;
        }   
}

确保也设置了会话

session_start();
$usermame = $_SESSION['username'];
if (!userPermission($username,'0', $conn) == 2) {...