العمل مع قواعد البيانات في PHP: PostgreSQL و MongoDB للمبتدئين

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة: لماذا PHP وقواعد البيانات قوة

\n\n

أي موقع ويب أو تطبيق حديث ليس مجرد مجموعة من الصفحات، بل هو نظام ديناميكي يخزن ويعالج البيانات. PHP، باعتبارها واحدة من أشهر لغات تطوير الويب، توفر أدوات قوية للعمل مع قواعد البيانات. في هذه المقالة، سنشرح نظامين رئيسيين لإدارة قواعد البيانات (DBMS): نظام PostgreSQL العلائقي ونظام MongoDB الموجه للمستندات.

\n\n

بالنسبة للمبتدئين، قد يبدو الاختيار بينهما صعبًا، لكن في الواقع كل منهما يحل مشاكله الخاصة. PostgreSQL هو معيار SQL موثوق للبيانات المنظمة، بينما MongoDB هو نظام NoSQL مرن للنمذجة السريعة والعمل مع المستندات الشبيهة بـ JSON. سنوضح كيفية الاتصال بكليهما من PHP، وإجراء العمليات الأساسية (CRUD)، وتقديم نصائح عملية.

\n\n

1. إعداد البيئة: ما يجب تثبيته

\n\n

قبل كتابة الكود، تأكد من تثبيت الإضافات الضرورية لـ PHP. للعمل مع PostgreSQL، تحتاج إلى الإضافة pdo_pgsql، ولـ MongoDB تحتاج إلى mongodb (عبر PECL أو composer).

\n\n

تثبيت الإضافات

\n
    \n
  • PostgreSQL: قم بإلغاء تعليق السطر extension=pdo_pgsql في ملف php.ini أو قم بالتثبيت عبر مدير الحزم (مثل sudo apt install php-pgsql).
  • \n
  • MongoDB: استخدم Composer: composer require mongodb/mongodb - سيقوم هذا بتثبيت المكتبة الرسمية.
  • \n
\n\n

بعد التثبيت، تحقق من أن الإضافات نشطة عن طريق تنفيذ php -m | grep -i pgsql و php -m | grep -i mongodb.

\n\n

2. PostgreSQL و PHP: الموثوقية و SQL

\n\n

PostgreSQL هو نظام إدارة قواعد بيانات علائقي قوي يدعم معاملات ACID والاستعلامات المعقدة وحقول JSON. للعمل معه في PHP، من الأفضل استخدام PDO (PHP Data Objects) - وهي واجهة عالمية.

\n\n

الاتصال بـ PostgreSQL

\n

أنشئ ملفًا باسم connect_pgsql.php:

\n
<?php\n$host = 'localhost';\n$dbname = 'testdb';\n$user = 'postgres';\n$pass = 'password';\n\ntry {\n    $pdo = new PDO("pgsql:host=$host;dbname=$dbname", $user, $pass);\n    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n    echo "تم الاتصال بـ PostgreSQL بنجاح!";\n} catch (PDOException $e) {\n    die("خطأ في الاتصال: " . $e->getMessage());\n}\n?>
\n\n

عمليات CRUD على مثال جدول users

\n

لنقم بإنشاء جدول وتنفيذ استعلامات أساسية.

\n\n

إنشاء الجدول

\n
<?php\n$sql = "CREATE TABLE IF NOT EXISTS users (\n    id SERIAL PRIMARY KEY,\n    name VARCHAR(100) NOT NULL,\n    email VARCHAR(150) UNIQUE NOT NULL,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n)";\n$pdo->exec($sql);\necho "تم إنشاء الجدول.";\n?>
\n\n

إدراج البيانات (CREATE)

\n
<?php\n$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");\n$stmt->execute(['name' => 'إيفان بيتروف', 'email' => 'ivan@example.com']);\necho "تمت إضافة المستخدم.";\n?>
\n\n

قراءة البيانات (READ)

\n
<?php\n$stmt = $pdo->query("SELECT * FROM users");\nwhile ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {\n    echo "ID: {$row['id']}, الاسم: {$row['name']}, البريد الإلكتروني: {$row['email']}<br>";\n}\n?>
\n\n

التحديث (UPDATE) والحذف (DELETE)

\n
<?php\n// تحديث\n$stmt = $pdo->prepare("UPDATE users SET name = :name WHERE id = :id");\n$stmt->execute(['name' => 'بيوتر سيدوروف', 'id' => 1]);\n\n// حذف\n$stmt = $pdo->prepare("DELETE FROM users WHERE id = :id");\n$stmt->execute(['id' => 2]);\n?>
\n\n

نصيحة: استخدم دائمًا الاستعلامات المحضرة (prepare) للحماية من حقن SQL.

\n\n

3. MongoDB و PHP: المرونة بدون مخطط

\n\n

MongoDB يخزن البيانات في شكل مستندات BSON (JSON ثنائي).

المدونات

توصيات الكتب