我有一个小脚本来检查数据库值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.
问题就在这里:
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
if($userRow == '0'){
您将从fetch
获得一个关联数组,并在下一行将其与0
进行比较。相反,您希望检查查询中选择的列的值,并与之进行比较:
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
if($userRow['activedd'] == '0'){