有沒有辦法檢查從MySQL返回的記錄集上的文件結束(在PHP中)?如何在不提前指針的情況下測試更多數據?
我想這樣做如下:
while (!mysql_eof($result) {
$row = mysql_fetch_array($result);
}
我不想在主迴路中使用mysql_fetch_array(),因爲我需要做進一步的循環和唐」裏面讀t要記錄集當前記錄計數器更新即。我不想推進當前的指針。
有沒有辦法檢查從MySQL返回的記錄集上的文件結束(在PHP中)?如何在不提前指針的情況下測試更多數據?
我想這樣做如下:
while (!mysql_eof($result) {
$row = mysql_fetch_array($result);
}
我不想在主迴路中使用mysql_fetch_array(),因爲我需要做進一步的循環和唐」裏面讀t要記錄集當前記錄計數器更新即。我不想推進當前的指針。
$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++;
}
希望這樣做。如果不是,我不知道會發生什麼。
我知道我可以做一個讀取數組,問題是:有沒有辦法在沒有前進記錄集的情況下檢查更多的數據。 – Pete855217
更新數據庫結構以處理簡單EOF函數的LOL是一個簡單問題的奇怪解決方案。我的數據庫管理員會嘲笑這個請求,理所當然。 – Pete855217
@ Pete855217您的請求是不尋常的,我提供的以前的解決方案是一個快速修復,如果您的DBA沒有問題,則只需不到一分鐘即可完成。無論如何,我上面提到的應該是你正在尋找的東西。 –
寫您的查詢像
$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
。
我的ans會給你EOF你的記錄集 – Gautam3164
我不dont認爲這是解決方案。他想要的是檢查結果數組的末尾是否已達到。 –
結果的結束意味着..在該權利的最後一個記錄??我做了同樣的事情....他可以添加他的custome條件 – Gautam3164
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瞭解更多詳情。
[所有mysql_ *函數都被棄用](http://www.php.net/manual/en/intro.mysql.php)。 –
感謝RoyMJ--我的PHP版本已經過去了mysql_eof(),但我可以嘗試mysql_error()方法,雖然它不是最優的。想要按照我嘗試的方式來執行邏輯的原因是,它保持了標準的順序文件處理算法的完整性。更新算法是一項艱鉅的任務。 – Pete855217
[不推薦使用mysql_擴展名](http://www.php.net/manual/en/intro.mysql.php)。改用mysqli或PDO。 –
[請考慮檢查下面的答案之一作爲正確的答案,如果他們解決您的問題,請看這裏how。](http://stackoverflow.com/about) – Prix