1

有没有办法检查从 MySQL ( 在 PHP 中) 返回的记录集的文件结尾?

我想做类似以下的事情:

while (!mysql_eof($result) {

    $row = mysql_fetch_array($result);
}

我不想在主循环中使用 mysql_fetch_array() ,因为我需要在循环内进行进一步读取并且不希望更新记录集当前记录计数器,即。我不想推进当前指针。

4

3 回答 3

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扩展:MySQLiPDO_MySQL,其中任何一个都可以用来代替ext/mysql.

于 2013-08-19T10:07:42.367 回答
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++;
}

希望这样做。如果没有,我不知道会怎样。

于 2013-08-19T10:09:32.500 回答
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了解更多详情。

于 2013-08-19T10:22:44.893 回答