php - 即使条件为假,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)
所以条件为假,但循环继续,为什么?
解决方案
试试这个以获取这样的记录
$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()