我有一个小脚本来检查数据库的值为0或1,但我似乎无法使其正常工作,我尝试了行计数,但遇到了同样的问题。
public function is_active($id){
$stmt = $this->db->prepare("SELECT activedd FROM users WHERE id=:id LIMIT 1");
$stmt->execute(array(':id'=>$id));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
if($userRow == '0'){
return true;
}else{
return false;
}
}
然后在所有页面上调用该函数
$id = $_SESSION['session'];
if(!$user->is_active($id)){
$user->redirect('../users/inactive.php');
}
更改单元格中的值没有区别,我只通过更改
获得不同的结果 $id = $_SESSION['session'];
if(!$user->is_active($id)){
$user->redirect('../users/inactive.php');
}
到
$id = $_SESSION['session'];
if($user->is_active($id)){
$user->redirect('../users/inactive.php');
}
但即便如此,我也遇到了同样的问题,但事实恰恰相反。我在$userRow == 0
时尝试将用户重定向到非活动页面,并允许他们继续使用该网站(如果为1)。
答案 0 :(得分:1)
问题在于:
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
if($userRow == '0'){
您从fetch
返回一个关联数组,并将其与下一行的0
进行比较。相反,您要检查您在查询中选择的列的值,并与之进行比较:
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
if($userRow['activedd'] == '0'){