شرح صفوف ومحتوى الفقرة
فور إدراج سجل جديد في جدول يمتلك مفتاحاً أساسياً متزايداً تلقائياً، استدعِ الدالة $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";