2012-11-27 45 views
0

什麼是最好的使用(以節省機器資源)mysql_fetch_array:最好mysql_fetch_array使用

$listidsquery = mysql_query("SELECT * FROM database") or die(mysql_error()); 
while($listidsres=mysql_fetch_array($listidsquery)){ 
     results; 
     } 

while($listidsres=mysql_fetch_array(mysql_query("SELECT * FROM database"))){ 
     results; 
     } 

感謝。

+0

_Never_ nest'mysql_query()'在獲取調用中。如果查詢失敗,你會從'mysql_fetch_array()'得到一個致命的錯誤。你的第一個例子是正確的方法,但你也應該檢查'if($ results)'以確保查詢成功。 –

+0

任何你不使用mysqli的原因?您正在使用的功能已被棄用。 – JohnB

+3

請不要將mysql_ *函數用於新代碼。他們不再被維護,社區已經開始[棄用流程](http://goo.gl/KJveJ)。看到[紅色框](http://goo.gl/GPmFd)?相反,您應該瞭解[準備好的語句](http://goo.gl/vn8zQ)並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定,[本文](http://goo.gl/3gqF9)將有助於選擇。如果你在意學習,這裏是[很好的PDO教程](http://goo.gl/vFWnC)。 –

回答

0

第一個片段是正確的,並且會產生出色的性能。第一個將mysql結果集資源設置爲$listidres - 資源是一個簡單的整數值。因此它不會消耗任何重要的額外資源。

第二個片段根本不正確。它將爲循環的每次迭代重新執行查詢(因此可能導致無限循環)。

正如以上評論中所述,這兩個片段都使用了mysql庫,即EOL。您應該改爲mysqli