Как вы можете добавить все строки из mysql_query в mysql_fetch_array ()? Я хочу иметь возможность сделать это как можно эффективнее, так как он может работать с несколькими рядами.
Наиболее распространенный способ:
$rows = array(); while(($row = mysql_fetch_array($result))) { $rows[] = $row; }
как показано в примерах в документации.
<?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
интересно 🙂