2010-05-15 102 views
0

是否有一個PHP函數可以在多維數組中獲得mysql查詢的完整結果?獲得完整結果

SELECT * FROM table 

通常我會做這樣的事情:

$query = mysql_query = ("SELECT * FROM table"); 
while ($result = mysql_fetch_array($query){ 
    echo $result[0]; 
} 
+0

簡短的回答:沒有,除非你寫一個自己。 – Franz 2010-05-15 14:55:37

回答

1

如果您使用PDO訪問mysql, http://www.php.net/manual/en/pdostatement.fetchall.php

否則你需要自己動手。

$query = mysql_query = ("SELECT * FROM table"); 
$all_results = array(); 
while ($result = mysql_fetch_array($query){ 
    $all_results[] = $result; 
} 
print_r($all_results); 

$ all_results變量將是一個包含所有記錄的多維數組。

+0

如果他使用的是PDO,我打賭他會使用PDO方法,而不是'mysql_ *';-) – zerkms 2010-05-15 15:04:03

2

您可以創建自己的功能像mysql_fetch_array_complete(),想象它的內置;-)

1

你總是可以編寫自己的函數這樣做,但它往往會導致通過結果集不必要的迭代(一次當你調用你的函數,另一次當你實際使用結果數組)。

由於您使用的是php5,因此您可以創建一個數據庫結果類來實現接口Iterator。然後,你可以在foreach()循環中使用你的類,並且可以從數組中獲得很多易用性。

+0

'while' +'mysql_fetch_array'和'foreach' +'custom class'之間的主要區別是什麼? – zerkms 2010-05-15 15:02:55

+0

對於後者,您可以對結果使用foreach,而不必首先逐行讀取。 – Franz 2010-05-15 15:19:21