Какой смысл в fetchAll? - PullRequest
       3

Какой смысл в fetchAll?

0 голосов
/ 18 февраля 2012

Чтобы получить результат из базы данных, вы можете сделать это:

<code>$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();
$result = $sth->fetchAll();
foreach($result as $r) { 
  echo "<pre>";
    print_r($r);
  echo "
";}

, но, похоже, он работает без использования fetchAll, пример:

<code>$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$result = $sth->execute();
foreach($result as $r) { 
  echo "<pre>";
    print_r($r);
  echo "
";}

так в чем же разница?

Ответы [ 2 ]

3 голосов
/ 18 февраля 2012

fetchAll будет считывать все строки из набора результатов базы данных и создавать из них массив, сохраняя все это в памяти. Итерация по набору результатов будет вызывать по одной строке за раз с сервера, что позволит сэкономить ресурсы на стороне PHP (но может использовать больше ресурсов на сервере базы данных, в зависимости от реализации базы данных).

1 голос
/ 18 февраля 2012

Во-первых, я предполагаю, что вы используете php PDO

С помощью fetchAll вы можете указать режим Fetch в качестве аргумента, а fetchall обеспечивает большую гибкость возвращаемых строк, а fetchall будет считывать все строки из базы данных и транслировать в массив.

fetchall намного более эффективен в управлении ресурсами по сравнению с простыми выполнениями, я полагаю. также ресурс, возвращаемый execute - bool

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...