[英]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_*
函数。 强烈建议改用MySQLi或PDO 。
回答您的问题,您必须获取查询结果或使用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.