mysql_fetch_array添加所有行?

问题描述:

如何将mysql_query中的所有行添加到mysql_fetch_array()?我希望能够尽可能有效地做到这一点,因为它可以用很多行工作。mysql_fetch_array添加所有行?

+0

我不明白你想要做什么。请澄清你的问题。你想总结某些行值吗? – 2011-01-10 03:01:55

+0

有什么不对的标准`而($行= mysql_fetch_assoc($结果)){回声$行[ '身份证']; }`? – thirtydot 2011-01-10 03:03:14

+0

不,只需用mysql_query()创建一个嵌套数组。我猜mysql_fetch_array()只能得到一行,我需要得到它们。 – 2011-01-10 03:03:18

最常见的方式:

$rows = array(); 

while(($row = mysql_fetch_array($result))) { 
    $rows[] = $row; 
} 

as shown in the examples in the documentation.

<?php 

$db = new mysqli("localhost", "foo_dbo", "pass", "foo_db", 3306); 

$startTime = microtime(true); 

$result = $db->query("select * from users"); 

$users = $result->fetch_all(MYSQLI_ASSOC); // faster 

// while($row = $result->fetch_assoc()) $users[] = $row; //slower 

echo sprintf("%d users fetched in %s secs", 
    count($users), number_format(microtime(true) - $startTime, 6, ".", "")); 

$db->close(); 

?> 

编辑一些运行时统计

$users = $result->fetch_all() 

    1000 users fetched in 0.001462 secs 
    5000 users fetched in 0.005493 secs 
15000 users fetched in 0.015517 secs 
50000 users fetched in 0.051950 secs 
100000 users fetched in 0.103647 secs 

while($row = $result->fetch_assoc()) $users[] = $row; 

    1000 users fetched in 0.001945 secs 
    5000 users fetched in 0.008101 secs 
15000 users fetched in 0.023481 secs 
50000 users fetched in 0.081441 secs 
100000 users fetched in 0.163282 secs 

有趣:)