انتقل إلى محتوى الدرس

Fetching All Rows with fetchAll جلب كافة السجلات بدالة fetchAll

تعلّم استعلامات الجلب والفلترة والترتيب عبر PDO في PHP بأسلوب PHP 8 الحديث مع أمثلة عملية وتطبيقات تفاعلية.
1 صفوف تعليمية
PHP
2 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

لجلب كافة السجلات المطابقة دفعة واحدة كمصفوفة تضم مصفوفات ترابطية (لعرض جدول منتجات أو قائمة مقالات مثلاً)، نستدعي الدالة $stmt->fetchAll():

  • إرجاع مصفوفة فارغة [] عند عدم التطابق: على عكس الدالة fetch() التي تُرجع false، تُرجع الدالة fetchAll() دائماً مصفوفة (وتكون مصفوفة فارغة [] إذا لم توجد نتائج).
  • الجاهزية المباشرة لحلقة foreach: يمكنك المرور على ناتج fetchAll() مباشرة داخل حلقة foreach بأمان.
PHP
<?php
$pdo = new PDO("sqlite::memory:", null, null, [
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
]);
$pdo->exec("CREATE TABLE items (name TEXT)");
$pdo->exec("INSERT INTO items VALUES ('Keyboard'), ('Mouse')");

$stmt = $pdo->prepare("SELECT name FROM items");
$stmt->execute();
$items = $stmt->fetchAll();
echo count($items) . " items loaded.";