mysql_fetch_array()超时

时间:2011-05-04 21:54:20

标签: php mysql

我正在尝试查询数据库,但它似乎只是加载一个年龄而没有做任何事情。这是一个简单的查询,不应该花费超过一毫秒。

while($row = mysql_fetch_array(getWallPosts($userid)))
{
}

现在我用以下代码替换此代码:

echo mysql_num_rows(getWallPosts($userid));

它只显示'1',实际上数据库中只有一条记录,它只是一个简单的SELECT语句。

这是getWallPosts函数:

function getWallPosts($userid, $limit = "10")
{
    $result = dbquery("SELECT * FROM commentpost 
                           WHERE userID = ".$userid." 
                           ORDER BY commentPostID DESC LIMIT 0, ".$limit);
    return $result;
}

另外,当我将正在执行的SQL字符串放入MySQL的查询浏览器中时。它根本没有时间。

有什么想法吗?

4 个答案:

答案 0 :(得分:3)

您似乎无限期循环,因为您每次都在检索新的数据集(一条记录)。

$result = getWallPosts($userid);

while ($row = mysql_fetch_array($result)) {
    //printf($row[0]);  
}

答案 1 :(得分:1)

您需要获取一次数据并循环遍历它。您的代码正在获取数据,运行循环,然后再次获取数据。

尝试:

$posts = getWallPosts($userid);
while($row = mysql_fetch_array($posts))
{
  //Code to execute
}

答案 2 :(得分:0)

它是一个无限循环。 while中的表达式总是执行,因此它始终是真的。

答案 3 :(得分:0)

每次while语句执行时,您都会返回一个新的结果集。您应首先调用getWallPosts,将其分配给$ results,然后循环它。