Получить весь массив SELECT

vanderv

Старатель
Регистрация
30 Май 2009
Сообщения
270
Реакции
12
Из базы забираю значения (SELECT * FROM tb)
Далее делаю так:
while($row = mysql_fetch_array($q)){
$select[] = $row;
}

Вопрос как это организовать без цикла? чтобы сразу получить весь запрос в массиве.
 
А можно узнать в чём цикл провинился?
 
Есть мнение, что там спрятан всё тот же цикл (курсор пробегает по выборке). Просто для PDO он вынесен в расширение. Десятитысячные секунды при этом выигрываются. Не более.
 
Судя по тестам (PDO)

Result :
fetchAll : 0.35965991020203s, 100249408b
fetch : 0.39197015762329s, 440b
Разницы практически нету.
Другое дело, что fetchAll занимает гораздо больше памяти (если конечно обрабатывать результаты сразу, а не складывать всё результаты в один массив).
 
Судя по тестам (PDO)
*** скрытое содержание ***
Разницы практически нету.
Другое дело, что fetchAll занимает гораздо больше памяти (если конечно обрабатывать результаты сразу, а не складывать всё результаты в один массив).

там дальше в комментах немного другой резальт



хз кому верить :)
 
thoth777, да, +- 0.03 секунды при выборке > 50к (или 200к) элементов сильно меняет дело :D
Существенная разница только в памяти. Можно конечно сначала получить все элементы, потом отдельным циклом его обрабатывать, но зачем? Когда можно сразу его обработать в порядке поступления.
хз кому верить :)
Себе ;). Возьми да проверь сам :D.
 
thoth777, да, +- 0.03 секунды при выборке > 50к (или 200к) элементов сильно меняет дело :D
Существенная разница только в памяти. Можно конечно сначала получить все элементы, потом отдельным циклом его обрабатывать, но зачем? Когда можно сразу его обработать в порядке поступления.

лично я использую mysql_fetch_array для получения результата выборки. хотя бы потому что не хочу заморачиваться с совместимостью версий. на одном хостинге - одно, на другом- другое.
и так приходится извращаться - то одного модуля не хватает, то другого. а тут еще приходится думать о том, какая версия пыхыпы у кого установлена.

такшта я - за последовательную выборку.

Добавлено через 36 секунд
Себе ;). Возьми да проверь сам :D.

себе я верю. и даже проверять не буду :)
 
Назад
Сверху