PHP:While循环和fetch数组永远运行?

PHP:While循环和fetch数组永远运行?,php,mysql,mysqli,Php,Mysql,Mysqli,我试图显示一个数据库中的所有记录,但它只是发送了大约1000条垃圾邮件,直到最后达到30秒超时。数据库里只有3条记录,不知道为什么会这样做 while($news = $engine->fetch_array("SELECT * FROM `cms_news` ORDER BY `id` DESC")) { echo 'lol<br>'; } 只要是真的,while循环就会继续运行。你必须改变你做事的逻辑,或者改变你想要达到的目标 在您的示例中,while循环 whi

我试图显示一个数据库中的所有记录,但它只是发送了大约1000条垃圾邮件,直到最后达到30秒超时。数据库里只有3条记录,不知道为什么会这样做

while($news = $engine->fetch_array("SELECT * FROM `cms_news` ORDER BY `id` DESC"))
{
    echo 'lol<br>';
}

只要是真的,while循环就会继续运行。你必须改变你做事的逻辑,或者改变你想要达到的目标

在您的示例中,while循环

while($news = $engine->fetch_array("SELECT * FROM `cms_news` ORDER BY `id` DESC")) {

保持为真,因此它保持运行。

您有多少行?是否值得分页?如果您打印与检索到的行相关的内容而不是随机的废话,您会注意到,由于fetch_数组是如何编写的,它要做的第一件事就是执行查询,它将始终检索相同的第一行,直到超过其时间限制。@Script47我有3行。@fvu如何解决这个问题?我尝试过使用fetch\u assoc,但仍然是相同的响应。简单地说,如果您希望能够检索第一行以外的任何内容,请不要在fetch\u数组行中执行查询。
while($news = $engine->fetch_array("SELECT * FROM `cms_news` ORDER BY `id` DESC")) {