【问题标题】:Mysqli result while loop returns null [closed]Mysqli结果while循环返回null [关闭]
【发布时间】: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


【解决方案1】:

这是该死的分号,我花了太多时间试图了解出了什么问题,因为之前一切正常,并且没有输出任何错误。

不好

  while($row = mysqli_fetch_assoc($query));
    {
      var_dump($row);
    }

不错

  while($row = mysqli_fetch_assoc($query))
    {
      var_dump($row);
    }

【讨论】:

    猜你喜欢
    • 2022-11-30
    • 1970-01-01
    • 2013-12-18
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    • 2014-08-11
    • 2015-10-05
    • 2020-05-07
    相关资源
    最近更新 更多