我正在尝试查询数据库,但它似乎只是加载一个年龄而没有做任何事情。这是一个简单的查询,不应该花费超过一毫秒。
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的查询浏览器中时。它根本没有时间。
有什么想法吗?
答案 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,然后循环它。