首页 > 解决方案 > 即使条件为假,while 循环也会继续

问题描述

我正在尝试做一个while循环来访问sql查询的每个结果

$request = $db->prepare("SELECT followerID FROM followers WHERE profile = ?");
$request->execute(array($_SESSION['id']));

while($user = $request->fetch()) 
{
var_dump($user);
}

我明白了

array(2) { ["followerID"]=> string(2) "42" [0]=> string(2) "42" }
bool(false) bool(false) bool(false) bool(false)... (infinite)

我可以看到条件是错误的,因为当我这样做时

var_dump($user = $request->fetch()) // multiple time

我第一次获得用户信息但在此之后我得到 bool(false)

所以条件为假,但循环继续,为什么?

标签: php

解决方案


试试这个以获取这样的记录

$request = $conn->prepare("SELECT followerID FROM followers WHERE profile = ?");
$request->bind_param("i", $_SESSION['id']);
$request->execute();

$result = $request->get_result();

while($user = $result->fetch_assoc()) 
{
  var_dump($user);
}

我已经看到您正在使用 SESSION 变量确保您在页面上调用session_start()


推荐阅读