مقدمة في العمل مع قواعد البيانات في PHP
تطوير الويب الحديث لا يمكن تصوره دون إدارة فعالة للبيانات. PHP، باعتبارها واحدة من أشهر لغات البرمجة من جانب الخادم، توفر للمطورين أدوات قوية للتفاعل مع أنظمة إدارة قواعد البيانات المختلفة. في هذه المقالة، سننظر في نظامين مختلفين جوهريًا ولكن بنفس القدر من الأهمية: نظام إدارة قواعد البيانات العلائقية PostgreSQL ونظام قواعد البيانات الموجهة للمستندات MongoDB.
بالنسبة للمطورين المبتدئين، قد يبدو الاختيار بين SQL و NoSQL صعبًا. سنقوم بتحليل الاختلافات الرئيسية، ونتعلم كيفية الاتصال بكلتا قاعدتي البيانات من PHP وتنفيذ عمليات CRUD الأساسية (إنشاء، قراءة، تحديث، حذف). في نهاية المقالة، ستكون قادرًا على اختيار نظام إدارة قواعد البيانات المناسب لمشروعك وكتابة كود عملي للتفاعل معه.
1. PostgreSQL: العمل مع البيانات العلائقية عبر PDO
PostgreSQL هو نظام إدارة قواعد بيانات كائني-علائقي قوي ومفتوح المصدر. يدعم الاستعلامات المعقدة، المعاملات وأنواع البيانات الموسعة. للعمل مع PostgreSQL في PHP، يُوصى باستخدام امتداد PDO (PHP Data Objects) الذي يوفر واجهة موحدة للعمل مع قواعد البيانات المختلفة.
الاتصال بـ PostgreSQL عبر PDO
الخطوة الأولى هي تثبيت برنامج التشغيل pdo_pgsql. تأكد من تفعيله في ملف php.ini الخاص بك. بعد ذلك، يمكنك إنشاء الاتصال:
<?php$host = 'localhost';$dbname = 'my_database';$user = 'my_user';$password = 'my_password';
try { $pdo = new PDO("pgsql:host=$host;dbname=$dbname", $user, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "تم إنشاء الاتصال بـ PostgreSQL بنجاح!";} catch (PDOException $e) { die("خطأ في الاتصال: " . $e->getMessage());}?>عمليات CRUD في PostgreSQL
لننظر في العمل مع جدول users الذي يحتوي على الحقول id و name و email. يتم تنفيذ جميع الاستعلامات من خلال العبارات المحضرة (prepared statements) للحماية من حقن SQL.
إنشاء سجل (Create):
<?php$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";$stmt = $pdo->prepare($sql);$stmt->execute([':name' => 'إيفان بيتروف', ':email' => 'ivan@example.com']);echo "تمت إضافة المستخدم. المعرف: " . $pdo->lastInsertId();?>قراءة البيانات (Read):
<?php$sql = "SELECT * FROM users WHERE id = :id";$stmt = $pdo->prepare($sql);$stmt->execute([':id' => 1]);$user = $stmt->fetch(PDO::FETCH_ASSOC);
if ($user) { echo "الاسم: " . $user['name'] . "، البريد الإلكتروني: " . $user['email'];} else { echo "المستخدم غير موجود.";}?>التحديث (Update) والحذف (Delete):
<?php// تحديث$sql = "UPDATE users SET email = :email WHERE id = :id";$stmt = $pdo->prepare($sql);$stmt->execute([':email' => 'new_email@example.com', ':id' => 1]);echo "تم تحديث عدد الصفوف: " . $stmt->rowCount();
// حذف$sql = "DELETE FROM users WHERE id = :id";$stmt = $pdo->prepare($sql);$stmt->execute([':id' => 1]);echo "تم حذف عدد الصفوف: " . $stmt->rowCount();?>2. MongoDB: العمل مع المستندات عبر مكتبة MongoDB PHP
MongoDB هي قاعدة بيانات NoSQL تخزن البيانات في شكل مستندات مرنة تشبه JSON. للعمل معها في PHP، يتم استخدام المكتبة الرسمية mongodb/mongodb التي يتم تثبيتها عبر Composer.
التثبيت والاتصال بـ MongoDB
أولاً، قم بتثبيت المكتبة عبر Composer:
composer require mongodb/mongodbبعد ذلك، قم بإنشاء اتصال بخادم MongoDB (يعمل افتراضيًا على المنفذ 27017):