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

Retrieving New ID with lastInsertId جلب المعرف الجديد عبر lastInsertId

أدرج السجلات المفردة والمتعددة في MySQL عبر الاستعلامات المحضرة، واسترجع المعرف التلقائي بـ lastInsertId وعالج القيم المكررة.
1 صفوف تعليمية
PHP
0 مشاهدة

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

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

فور إدراج سجل جديد في جدول يمتلك مفتاحاً أساسياً متزايداً تلقائياً، استدعِ الدالة $pdo->lastInsertId() على كائن الاتصال.

  • انتبه إلى أن lastInsertId() تُستدعى على كائن الاتصال $pdo وليس على كائن الاستعلام المحضر $stmt.
  • تُرجع الدالة المعرف الجديد كنص string (مثل "1")، ويمكنك تحويله لعدد صحيح عبر (int) $pdo->lastInsertId().
  • بما أن المعرف مرتبط بجلسة الاتصال الحالية فقط، فلن تتداخل أرقام lastInsertId() أبداً بين الزوار المتزامنين.

تحويل النتيجة عبر (int) $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' => 380.00]);
$newOrderId = (int) $pdo->lastInsertId();
echo "New Order ID: $newOrderId (" . gettype($newOrderId) . ")\n";