在我的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