Разница между PDOStatement::fetchAll() и PDOStatement::fetch() заключается в том, как эти методы получают результаты после выполнения запроса. 1
PDOStatement::fetchAll() выбирает все оставшиеся строки из набора результатов и возвращает их в виде массива. 14
PDOStatement::fetch(), в свою очередь, выбирает только одну следующую строку из набора результатов. 1
Таким образом, fetchAll() используется для получения всех данных за один проход, а fetch() — для извлечения одной строки за одну итерацию. 2