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

Running DDL Statements with PDO exec تنفيذ أوامر الهيكلة عبر PDO::exec

نفّذ أوامر بناء الهيكلة DDL بأمان في PHP 8 عبر PDO::exec لإنشاء قواعد البيانات وجداول UTF8MB4 والمفاتيح الأساسية والفهارس.
1 صفوف تعليمية
PHP
0 مشاهدة

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

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

أوامر تعريف وهيكلة البيانات (DDL) مثل CREATE DATABASE وCREATE TABLE وALTER TABLE لا تُرجع صفوف نتائج، ولذلك تُنفذ مباشرة عبر الدالة $pdo->exec($sql).

  • تنفذ $pdo->exec($sql) أمر SQL واحداً لا يُرجع صفوفاً، وتُرجع الرقم 0 لأوامر الهيكلة (أو false عند الفشل).
  • لا تدمج مدخلات المستخدم أبداً داخل $pdo->exec()؛ فأسماء الجداول والأعمدة في ملفات التهجير يجب أن تكون ثابتة في الكود المصدري.
  • أضف العبارة IF NOT EXISTS في CREATE TABLE IF NOT EXISTS لتتمكن من تشغيل سكريبت التهجير بأمان دون خطأ وجود الجدول مسبقاً.

تنفذ $pdo->exec($sql) أمر إنشاء جدول settings في الذاكرة وتُرجع 0 دلالةً على نجاح أمر الهيكلة.

مخطط توضيحي: محاكي إنشاء قواعد البيانات والجداول والمفاتيح عبر PDO في PHP
PHP
<?php
$pdo = new PDO('sqlite::memory:');
$sql = 'CREATE TABLE IF NOT EXISTS settings (
    key_name VARCHAR(64) PRIMARY KEY,
    key_value TEXT NOT NULL
)';
$res = $pdo->exec($sql);
echo "DDL executed, return: $res\n";