شرح صفوف ومحتوى الفقرة
أدرج دائماً البيانات القادمة من المستخدم عبر استعلام محضر بالمعاملات المسماة (:name و:email) وتمرير مصفوفة القيم إلى $stmt->execute([...]).
- اذكر أسماء الأعمدة صراحةً في
INSERT INTO table (col1, col2) VALUES (:col1, :col2)حتى لا تتأثر عملية الإدراج عند إضافة أعمدة جديدة للجدول. - في PHP 8، لا يشترط كتابة النقطتين في مفاتيح مصفوفة
$stmt->execute()؛ فالمفتاح["name" => "Ali"]يرتبط تلقائياً بالمعامل:name. - استدعِ
$stmt->rowCount()بعد التنفيذ للتحقق من إدراج سجل واحد بنجاح.
يُحضَّر هيكل جملة SQL مرة واحدة عبر prepare()، وتُربط قيم المصفوفة الترابطية بأمان تام عبر execute().
PHP
<?php
$pdo = new PDO('sqlite::memory:');
$pdo->exec('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, email TEXT)');
$stmt = $pdo->prepare('INSERT INTO users (name, email) VALUES (:name, :email)');
$stmt->execute([
'name' => 'Maha Al-Harbi',
'email' => '[email protected]',
]);
echo "Inserted rows: " . $stmt->rowCount() . "\n";