РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
249 of 258 menu

Метод iterateAssociative

Метод iterateAssociative класса Connection выполняет SQL-запрос и возвращает итератор для ленивого обхода строк. В отличие от fetchAllAssociative, который загружает все строки в память сразу, этот метод выдаёт по одной строке за итерацию. Первым параметром передаётся SQL-запрос, вторым - массив значений для подстановки в параметры, третьим - массив типов этих значений.

Синтаксис

public function iterateAssociative(string $query, array $params = [], array $types = []): iterable

Пример

Давайте получим итератор по всем статьям из таблицы article:

<?php namespace AppController; use DoctrineDBALConnection; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(Connection $connection): Response { $sql = 'SELECT id, title FROM article'; $iterator = $connection->iterateAssociative($sql); foreach ($iterator as $row) { echo $row['id'] . ': ' . $row['title'] . '<br>'; } return new Response(); } } ?>

Результат выполнения кода:

1: article 1<br> 2: article 2<br> 3: article 3<br>

Пример

Давайте передадим значение для параметра запроса:

<?php namespace AppController; use DoctrineDBALConnection; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(Connection $connection): Response { $sql = 'SELECT id, title FROM article WHERE title = ?'; $iterator = $connection->iterateAssociative($sql, ['abcde']); foreach ($iterator as $row) { echo $row['id'] . ': ' . $row['title']; } return new Response(); } } ?>

Результат выполнения кода:

5: abcde

Смотрите также

  • класс Connection,
    который управляет подключением к базе данных
  • метод fetchAllAssociative,
    который возвращает все строки сразу
  • метод fetchAssociative,
    который возвращает одну строку
  • метод executeQuery,
    который выполняет запрос и возвращает результат
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить