PHP无限循环While"与类


PHP Infinite Loop "While" with Class

我的脚本没有class。(框架)。现在我改变主意了& &;我想用类来写我的脚本。我喜欢它。但是我有一个问题……无限循环While。在没有课的情况下,我以前没有做过这个问题。

,而规则;

while ($fetch=$db->fetchObject($db->q("SELECT * FROM auction_house.items ORDER BY id DESC LIMIT ".$min_stuff.",".$max_stuff."")))
{
    // etc
}

类;

public function fetchObject($queryRes)
{
    $this->queryRes = $queryRes;
    $this->record = mysql_fetch_object($this->queryRes);
    return $this->record;
}

当我尝试while循环时,我在页面上进行无限循环。我该如何解决这个问题?

您在每次迭代中执行查询。它总是返回一个新的资源。

尝试分离查询和循环:

$res = $db->q("SELECT * FROM auction_house.items ORDER BY id DESC LIMIT ".$min_stuff.",".$max_stuff."");
while ($fetch=$db->fetchObject($res))
{
    // etc
}

您的代码在每个while循环上执行,因此如果您将$db->q嵌套在那里,它将在每次循环时执行查询,每次while迭代返回查询结果的第一行。

试着把你的代码分开,像这样:

$result = $db->q("SELECT * FROM auction_house.items ORDER BY id DESC LIMIT ".$min_stuff.",".$max_stuff."");
while ($fetch=$db->fetchObject($result)){
    // etc
}

这样,$db->q()将只执行一次,并且while将循环遍历其结果。

每次迭代都开始一个新的查询。

你需要存储你的queryRes:

$queryRes = $db->q("SELECT * FROM auction_house.items ORDER BY id DESC LIMIT ".$min_stuff.",".$max_stuff."");
while ($fetch=$db->fetchObject($queryRes))
{
    // etc
}

另一方面,我不确定你是否应该存储queryRes和记录作为$db的实例变量。