【发布时间】:2019-06-07 14:50:20
【问题描述】:
上次我检查时这段代码可以工作,然后我做了一些更改(但没有更改核心操作),现在它没有,我不明白为什么,我错过了什么吗?
require("./dbAccess.php");
mysqli_set_charset($dbConnection, 'utf8mb4');
if($query = mysqli_query($dbConnection,
"SELECT * FROM table")){
mysqli_close($dbConnection);
while($row = mysqli_fetch_assoc($query));
{
var_dump($row);
}
}
else {echo (mysqli_error($dbConnection)); mysqli_close($dbConnection);}
该表有 2 行,mysqli_num_rows 确认它,如果我 var_dump 没有循环,我正确地得到第一行,但一旦它通过循环,var_dump 结果为空。
谢谢
【问题讨论】:
-
嗯……查询成功后,你显式关闭连接……!?
-
mysqli_fetch_assoc 不需要 db 连接即可工作,为什么要保持打开状态?
-
你为什么会认为‽它从数据库中获取数据。它没有明确要求连接参数,因为它包含在它所采用的结果集参数中。与数据库的底层连接必须仍处于活动状态。
-
我认为它需要的所有数据都已经存储在查询结果中(为什么它会在 while 循环之外工作呢?)。无论如何,我尝试在最后关闭连接,但结果是一样的。
标签: php arrays mysqli while-loop