有没有办法检查从MySQL返回的记录集的文件结尾(在PHP中(?
我想做如下事情:
while (!mysql_eof($result) {
$row = mysql_fetch_array($result);
}
我不想在主循环中使用 mysql_fetch_array((,因为我需要在循环内进行进一步读取,并且不希望更新记录集当前记录计数器,即。我不想推进当前指针。
像这样编写查询
$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
。
$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++;
}
希望这能做到。如果没有,我不知道会怎样。
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 了解更多详情。