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

Fetching Single Row with fetch جلب سجل مفرد بدالة fetch

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

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

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

عند البحث عن سجل مفرد (مثل جلب بيانات مستخدم عبر معرفه الأساسي id أو بريده الإلكتروني الفريد)، ننفذ استعلام SELECT محضراً ثم نستدعي الدالة $stmt->fetch():

  • إرجاع الصف أو false: مع تفعيل النمط PDO::FETCH_ASSOC، تُرجع الدالة fetch() مصفوفة ترابطية تمثل السجل المطابق، أو تُرجع القيمة المنطقية false إذا لم يُعثر على السجل.
  • التحقق قبل قراءة الحقول: افحص دائماً if ($user !== false) قبل قراءة مفاتيح المصفوفة لتجنب أخطاء الوصول لسجل غير موجود.
مخطط يقارن بين دوال الجلب الثلاث fetch و fetchAll و fetchColumn في واجهة PDO بلغة PHP 8.4
PHP
<?php
$pdo = new PDO("sqlite::memory:", null, null, [
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
]);
$pdo->exec("CREATE TABLE users (id INT, name TEXT)");
$pdo->exec("INSERT INTO users VALUES (10, 'Mona')");

$stmt = $pdo->prepare("SELECT id, name FROM users WHERE id = :id");
$stmt->execute(["id" => 10]);
$user = $stmt->fetch();
echo ($user !== false) ? $user["name"] : "Not found";