2010-05-15 101 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