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

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

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

ابدأ الدورة

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



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



1. الاتصال بـ PostgreSQL عبر PDO



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



أولاً، تأكد من تثبيت برامج تشغيل pdo_pgsql و pgsql في نظامك. يمكنك التحقق من ذلك عبر phpinfo().



مثال على الاتصال وإدراج البيانات



<?php$host = 'localhost';$dbname = 'my_database';$user = 'my_user';$password = 'my_password';

try { // إنشاء DSN (اسم مصدر البيانات) $dsn = "pgsql:host=$host;dbname=$dbname"; // الاتصال $pdo = new PDO($dsn, $user, $password, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC ]); echo "تم الاتصال بـ PostgreSQL بنجاح!<br>"; // إدراج البيانات باستخدام العبارات المحضرة $sql = "INSERT INTO users (name, email, age) VALUES (:name, :email, :age)"; $stmt = $pdo->prepare($sql); $stmt->execute([ ':name' => 'Ivan Petrov', ':email' => 'ivan@example.com', ':age' => 28 ]); echo "تمت إضافة المستخدم. المعرف: " . $pdo->lastInsertId(); } catch (PDOException $e) { echo "خطأ في الاتصال: " . $e->getMessage(); die();}?>


استخدام العبارات المحضرة يحمي من حقن SQL ويحسن الأداء للاستعلامات المتكررة المماثلة.



استرجاع البيانات مع التصفية



<?php$minAge = 25;$search = "SELECT id, name, email, age FROM users WHERE age > :minAge ORDER BY age DESC";$stmt = $pdo->prepare($search);$stmt->execute([':minAge' => $minAge]);

$users = $stmt->fetchAll();

foreach ($users as $user) { echo "{$user['name']} ({$user['age']} سنة) - {$user['email']}<br>";}?>


يدعم PostgreSQL عمليات JOIN المعقدة والاستعلامات الفرعية ودوال النوافذ والبحث النصي الكامل — مما يجعله خياراً مثالياً للمشاريع ذات متطلبات سلامة البيانات الصارمة.



2. الاتصال بـ MongoDB عبر المشغل الرسمي



MongoDB هي قاعدة بيانات NoSQL تخزن البيانات في شكل مستندات (كائنات BSON شبيهة بـ JSON). وهي مناسبة تماماً للمشاريع ذات المخططات المرنة والنماذج الأولية السريعة والتوسع الأفقي.



للعمل مع MongoDB في PHP، يتم استخدام إضافة mongodb ومكتبة mongodb/mongodb (التي يتم تثبيتها عبر Composer).



تثبيت المشغل



# عبر Composer في جذر المشروعcomposer require mongodb/mongodb


مثال على الاتصال وإدراج مستند



<?phprequire_once 'vendor/autoload.php';

use MongoDB\\Client;use MongoDB\\Driver\\Exception\\Exception;

try { // الاتصال بالخادم المحلي $client = new Client("mongodb://localhost:27017"); // تحديد قاعدة البيانات والمجموعة $collection = $client->my_database->users; // إدراج مستند واحد $insertResult = $collection->insertOne([ 'name' => 'Anna Smirnova', 'email' => 'anna@example.com', 'age' => 32, 'interests' => ['programming', 'reading', 'traveling'],

المدونات

توصيات الكتب