繁体   English   中英

如何在PHP中获取SQL数据库的枚举值

[英]How can I get the enum value of SQL database in PHP

因此,我将用户等级作为枚举数保存到SQL数据库中。 然后,我想尝试检查其排名并将其与字符串进行比较。 如果等级等于字符串,那么我要允许他们访问。 到目前为止,这是我的代码(这不起作用):

    $email = stripslashes($email);
    $password = stripslashes($password);
    $email = mysql_real_escape_string($email);
    $password = mysql_real_escape_string($password);
    $sql = "SELECT RANK FROM $table WHERE EMAIL = '$email' and PASSWORD = '$password'";
    $result = mysql_query($sql);

    $count = mysql_num_rows($result);

    if($count == 1){
        if($result == "OWNER") {
            header("location: panel.php");
        } else {
            $message = "Permission denied.";
        }
    } else {
        $message = "Incorrect email or password.";
    }

重要的提醒!

从PHP 5.5.0开始不推荐使用mysql_*函数。 强烈建议改用MySQLiPDO

回答您的问题,您必须获取查询结果或使用mysql_result()

询问

$sql = "SELECT RANK
        FROM $table
        WHERE EMAIL = '$email' and PASSWORD = '$password'
        LIMIT 1";
$result = mysql_query($sql);

获取结果:

$rank = mysql_fetch_array($result);
$rank = $rank['RANK'];

或者使用mysql_result()代替:

$rank = mysql_result($result);

您必须先mysql_fetch_assoc $ result变量,然后才能读取表行。 我也建议您使用mysqli函数。 在这里,尝试使用此方法代替您的方法(没有mysqli,并且未经我自己测试):

$email = mysql_real_escape_string(stripslashes($email));
$password = mysql_real_escape_string(stripslashes($password));
$sql = "SELECT `RANK` FROM ".$table." WHERE `EMAIL` = '".$email."' and `PASSWORD` = '".$password."'";
$result = mysql_query($sql);

$count = mysql_num_rows($result);

$result = mysql_fetch_assoc($result);

if($count == 1){
    if($result == "OWNER") {
        header("location: panel.php");
    } else {
        $message = "Permission denied.";
    }
} else {
    $message = "Incorrect email or password.";
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM