شرح صفوف ومحتوى الفقرة
عند البحث عن سجل مفرد (مثل جلب بيانات مستخدم عبر معرفه الأساسي id أو بريده الإلكتروني الفريد)، ننفذ استعلام SELECT محضراً ثم نستدعي الدالة $stmt->fetch():
- إرجاع الصف أو
false: مع تفعيل النمطPDO::FETCH_ASSOC، تُرجع الدالةfetch()مصفوفة ترابطية تمثل السجل المطابق، أو تُرجع القيمة المنطقيةfalseإذا لم يُعثر على السجل. - التحقق قبل قراءة الحقول: افحص دائماً
if ($user !== false)قبل قراءة مفاتيح المصفوفة لتجنب أخطاء الوصول لسجل غير موجود.
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";