$useremail = $_POST['txt_email'];
$password = $_POST['txt_password'];
$select = $pdo->prepare("SELECT * FROM tbl_user WHERE useremail='$useremail' AND password='$password'");
$select->execute();
$row=$select->fetch(PDO::FETCH_ASSOC);
if($row['useremail']==$useremail AND $row['password']==$password AND $row['role']=="Admin"){ // Line 27
// .. rest of the code
}
$row 是false,当提交了一个无效的凭证。否则,它返回一个数组。
这在 PHP v7.2 时工作得很好,但升级到 v7.4 后,我得到了这样的通知:"我的代码是一个数组。
Notice: Trying to access array offset on value of type bool in index.php on line 27
有可能没有记录返回,所以你需要检查一下,你可以在尝试访问任何索引之前测试变量是否有值。
if($row){
//add your code
}