有没有办法检查从MySQL返回的记录集上的文件结尾(用PHP)?
我想做以下事情:
while (!mysql_eof($result) {
$row = mysql_fetch_array($result);
}
我不想在主循环中使用mysql_fetch_array(),因为我需要在循环内部进行进一步的读取,并且不希望记录集当前记录计数器更新即。我不想推进当前的指针。
答案 0 :(得分:2)
编写您的查询,如
$result = mysql_query("SELECT * FROM MyTable ORDER BY id DESC LIMIT 0,1");
$row = mysql_fetch_assoc($result);
print_r($row);
并且由于整个mysql_*
扩展程序(提供带有前缀ext/mysql PHP
命名的所有函数)从mysql_*
开始正式弃用,并尝试避免PHP v5.5.0
语句将来删除。
您可以更好地使用其他两个MySQL
扩展程序:MySQLi
和PDO_MySQL
,其中任何一个都可以用来代替ext/mysql
。
答案 1 :(得分:0)
$result = mysql_query("SELECT * FROM table");
$num_rows = mysql_num_rows($result);
$counter = 1;
while($counter<=$num_rows)
{
//There is still more data
//Do whatever to the current row
$counter++;
}
希望这样做。如果没有,我不知道会发生什么。
答案 2 :(得分:0)
mysql_eof()
已弃用。可以使用mysql_errno()
或mysql_error()
代替。
mysql_eof()
确定是否已读取结果集的最后一行。
如果从成功调用mysql_store_result()
获取结果集,则客户端将在一次操作中接收整个集合。在这种情况下,从mysql_fetch_row()
返回NULL总是表示已达到结果集的结尾,并且无需调用mysql_eof()
。与mysql_store_result(), mysql_eof()
一起使用时,始终返回true。
结帐:http://dev.mysql.com/doc/refman/4.1/en/mysql-eof.html了解详情。