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

PDO Insert Patterns Comparison Table مقارنة أنماط إدراج البيانات في PDO

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

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

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

اختر نمط الإدراج في PDO بناءً على عدد السجلات ومستوى الذرية المطلوب في ميزة تطبيقك.

  • استخدم استعلاماً محضراً مفرداً مع lastInsertId() لإرسال النماذج المعتادة مثل إنشاء حساب أو إضافة تعليق.
  • استخدم الاستعلام المحضر داخل معاملة beginTransaction() / commit() عند إدراج فاتورة رئيسية مع عدة بنود تابعة لها.
  • التقط دائماً الرمز "23000" في الجداول التي تحتوي على أعمدة UNIQUE بدلاً من الاعتماد فقط على استعلام SELECT مسبق.

تعمل المعاملات الموضعية (?) أيضاً بسلاسة عند تمرير مصفوفة مفهرسة إلى $stmt->execute([...]).

النمط / الدالةأفضل حالة استخدامقيمة الإرجاع / السلوكالقاعدة الحرجة
$stmt->execute($data)Single safe row insertbool (check rowCount())Prepare SQL with :named or ?
$pdo->lastInsertId()Get new AUTO_INCREMENT IDstring ID (cast to int)Call on $pdo BEFORE commit()
prepare() + Tx LoopBatch insert (10–10,000 rows)Single disk commitprepare() outside loop; rollBack() on error
$e->getCode() === "23000"Duplicate UNIQUE key trap5-char SQLSTATE stringEnforce UNIQUE index in DB schema

PHP
<?php
$pdo = new PDO('sqlite::memory:');
$pdo->exec('CREATE TABLE logs (id INTEGER PRIMARY KEY, msg TEXT)');
$stmt = $pdo->prepare('INSERT INTO logs (msg) VALUES (?)');
$stmt->execute(['User logged in']);
echo "ID: " . $pdo->lastInsertId() . " | Rows: " . $stmt->rowCount() . "\n";
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

اختر نمط الإدراج في PDO بناءً على عدد السجلات ومستوى الذرية المطلوب في ميزة تطبيقك. استخدم استعلاماً محضراً مفرداً مع lastInsertId() لإرسال النماذج المعتادة مثل إنشاء حساب أو إضافة تعليق. استخدم الاستعلام المحضر داخل معاملة beginTransaction() / commit() عند إدراج فاتورة رئيسية مع عدة بنود تابعة لها. التقط دائماً الرمز "23000" في الجداول التي تحتوي على أعمدة UNIQUE بدلاً من الاعتماد فقط على استعلام SELECT مسبق.