【问题标题】:PHP error while getting multiple rows获取多行时出现PHP错误
【发布时间】:2016-02-03 15:37:08
【问题描述】:

我正在尝试获取数据库中的所有行。我的代码:

$sql = "SELECT * FROM lectors";

$array = array();
while($row =  mysqli_fetch_assoc(mysqli_query($con,$sql))){
    echo $row["name"];
}

当我发送请求时,服务器没有回复。有什么想法吗?

【问题讨论】:

  • 在哪里初始化$con SQL 连接?
  • while 之前将mysqli_query($con,$sql) 作为一个步骤,在while 中将mysqli_fetch_assoc()... 因为我敢肯定您从未见过有效的示例或PHP Docs 中的任何内容,它结合了while 中的所有内容
  • @BenPearlKahan,在另一个 php 文件中:$con = mysqli_connect(HOST,USER,PASS,DB) or die('Unable to Connect');
  • php.net/manual/en/mysqli.error.php 并将其用于您的查询

标签: php mysql arrays database


【解决方案1】:
while($row =  mysqli_fetch_assoc(mysqli_query($con,$sql))){

这是一个永无止境的循环,您的查询每次都会正常执行,并且循环永远不会终止。

需要我多说吗?

它只是和

一样好
while(true)
{
   // keep querying my database until i run out of resources
}

首先执行查询并仅遍历其结果。

哦,

当我发送请求时,服务器没有回复

因为,正如我所说;忙着转圈,没时间回复。

【讨论】:

  • 但是我的代码在循环中运行良好。我的问题是排队,请参阅下面的答案。
  • 不,不是。如果您确实理解,则该答案使用相同的语言。只是它提供了一个没有太多解释的复制粘贴解决方案,因此它可以解决您的问题,但您仍然不知道问题是什么:)
【解决方案2】:

尝试将查询单独放在一行中,如...

$sql = "SELECT * FROM lectors";
$array = array();
$res = mysqli_query($con,$sql);
while($row =  mysqli_fetch_assoc($res)){
    echo $row["name"];
}

在你上面的方法中执行它会导致每次执行循环都执行数据库查询。

【讨论】:

  • 为什么 OP 应该“试试这个”? 好的答案将始终解释所做的事情以及这样做的原因,不仅适用于 OP,也适用于 SO 的未来访问者。
猜你喜欢
  • 2022-08-17
  • 1970-01-01
  • 2020-09-06
  • 1970-01-01
  • 2016-12-04
  • 2018-01-13
  • 2014-07-22
  • 2020-05-29
  • 2018-04-01
相关资源
最近更新 更多