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

Getting Auto ID lastInsertId قراءة معرف السجل بـ lastInsertId

تعلّم الاستعلامات المحضرة وإدراج البيانات بأمان ضد SQL Injection في PHP بأسلوب PHP 8 الحديث مع أمثلة عملية وتطبيقات تفاعلية.
1 صفوف تعليمية
PHP
5 مشاهدة

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

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

بعد إدراج سجل جديد في جدول يحتوي على مفتاح أساسي تلقائي الزيادة (AUTO_INCREMENT)، نستدعي الدالة $pdo->lastInsertId() للحصول على المعرف الرقمي الذي ولّدته قاعدة البيانات للسجل المضاف:

  • تُستدعى من الكائن $pdo وليس $stmt: انتبه دائماً إلى أن lastInsertId() دالة تابعة لكائن الاتصال $pdo وتُرجع المعرف كنص.
  • معزولة لكل جلسة اتصال: حتى لو قام مئات الزوار بإضافة سجلات في نفس اللحظة، تُرجع $pdo->lastInsertId() المعرف الخاص بعملية الإدراج التي تمت على اتصالك الحالي فقط.
PHP
<?php
$pdo = new PDO("sqlite::memory:");
$pdo->exec("CREATE TABLE orders (id INTEGER PRIMARY KEY AUTOINCREMENT, total REAL)");

$stmt = $pdo->prepare("INSERT INTO orders (total) VALUES (:total)");
$stmt->execute(["total" => 450.00]);

$newOrderId = (int) $pdo->lastInsertId();
echo "Created Order #" . $newOrderId;