在我的MySQL数据库表users
,有一个领域grpID
,与G00, G01, G02, G03
在MYSQL滞留的mysqli取
一个的价值是什么,我试图做的是检查用户的GRPID决定他/她是否有一个有权访问某些页面。
因此,这里是我的尝试:
$isadmin = false;
function evalLoggedUser($conx,$id,$u,$p){
$sql = "SELECT grpID FROM users WHERE userID='$id' AND userName='$u' AND userPW='$p' LIMIT 1";
$query = mysqli_query($conx, $sql);
$numrows = mysqli_num_rows($query);
if($numrows > 0){
$userLvl = mysqli_fetch_row($query);
if ($userLvl[0]=="G00") {
echo "isadmin set to true CONFIRM";
$isadmin=true;
}
return true;
}
我有check_status.php
命名上面的代码,并在我的index.php
文件我有这样的代码:
include_once("htconfig/check_status.php");
if($isadmin) {
echo "final confirmation";
}
现在没事了,当我测试这个用户与grpID G00
,我确实得到第一个回声,isadmin set to true CONFIRM
。这证明isadmin设置为true,但是我没有在if子句中获得第二个回显... 我正在为此奋斗几个小时......请帮忙!
不是你的问题的一部分,但你应该使用准备好的语句并绑定你的参数('$ id','$ u')。 – prodigitalson
**警告**:使用'mysqli'时,您应该使用参数化查询和['bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)添加用户数据到您的查询。 **不要**使用字符串插值来实现此目的,因为您将创建严重的[SQL注入漏洞](http://bobby-tables.com/)。 – tadman
而不是使用if语句来检查是否有任何行,为什么不对结果使用fetch方法? – Slime