English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دروس PostgreSQL الأساسية

دروس PostgreSQL المتقدمة

واجهات PostgreSQL

واجهات PHP PostgreSQL

التثبيت

تم تفعيل تعديل PostgreSQL بشكل افتراضي في إصدار PHP 5.3.x. يمكنك إيقافه باستخدام --without-pgsql عند تجميعه. يمكنك أيضًا استخدام الأمر yum لتنزيل واجهة PHP-PostgreSQL

تثبيت php-pgsql

قبل استخدام واجهة PHP PostgreSQL، ابحث عن ملف pg_hba.conf في مجلد تثبيت PostgreSQL وأضف السطر التالي

# الاتصالات المحلية الخاصة بـ IPv4:
الخادم                               كل                               127.0.0.1/32                               md5

إذا لم يكن خادم postgresql يعمل، يمكنك استخدام الأمر التالي لبدء/إعادة تشغيل خادم postgresql-

[root@الخادم]# خدمة postgresql إعادة التشغيل
إيقاف خدمة postgresql:                               [  OK  ]
بدء خدمة postgresql:                               [  OK  ]

على المستخدمين الذين يستخدمون Windows يجب عليهم تمكين php_pgsql.dll لاستخدام هذا التوسيع. يتضمن هذا DLL إصدارات Windows من PHP 5.3.x فما فوق

للحصول على تعليمات التثبيت التفصيلية، يرجى الرجوع إلىدروس PHPوحيث يقع الموقع الرسمي.

واجهات API لـ PHP

فيما يلي بعض الأمثلة المهمة من PHP يمكن أن ت满足 احتياجاتك في استخدام قاعدة بيانات PostgreSQL في برنامج PHP الخاص بك. إذا كنت تبحث عن تطبيق أكثر تعقيدًا، يمكنك الرجوع إلى مستندات PHP الرسمية.

الرقمAPI و الوصف
1

مصدر pg_connect ( نص $connection_string [, عدد $connect_type ] )

سيفتح هذا الاتصال إلى قاعدة بيانات PostgreSQL المحددة بواسطة connection_string.

إذا تم تمرير PGSQL_CONNECT_FORCE_NEW كـ connect_type، فإن الاتصال الجديد سيتم إنشاؤه في مكالمة ثانية لـ pg_connect()، حتى لو كانت connection_string متطابقة مع اتصال موجود.

2

بوليان pg_connection_reset ( مصدر $connection )

يقوم هذا الإجراء بإعادة تعيين الاتصال. يستخدم بشكل عام لاستعادة الأخطاء. يعيد TRUE إذا كانت النتيجة ناجحة، وإذا كانت الفشل يعيد FALSE.

3

عدد pg_connection_status ( مصدر $connection )

يعيد حالة الاتصال المحدد. يعيد PGSQL_CONNECTION_OK أو PGSQL_CONNECTION_BAD.

4

نص pg_dbname ([ مصدر $connection ] )

يعيد اسم قاعدة البيانات للاتصال بـ PostgreSQL المحدد.

5

مصدر pg_prepare ([ مصدر $connection ], نص $stmtname, نص $query )

إرسال طلب بهذا الشكل، باستخدام شيء معين لتكوين إعلان مسبق التحضير، وانتظار الانتهاء.

6

مصدر pg_execute ([ مصدر $connection ], نص $stmtname, مصفوفة $params )

يأتي بهذه العملية طلب تنفيذ إعلان مسبق التحضير مع المعلمات المقدمة، وينتظر النتائج.

7

مصدر pg_query ([ مصدر $connection ], نص $query )

تنفيذ استعلام على اتصال قاعدة البيانات المحدد.

8

مصفوفة pg_fetch_row (مصدر $result [, عدد $row ] )

الحصول على صفة واحدة من النتائج المرتبطة بمصدر النتائج المحدد.

9

مصفوفة pg_fetch_all (مصدر $result )

يعيد مصفوفة تحتوي على جميع الصفوف (السجلات) في مصدر النتائج.

10

int pg_affected_rows ( resource $result )

إرجاع عدد السطور المتأثرة من جمل INSERT، UPDATE و DELETE.

11

int pg_num_rows ( resource $result )

إرجاع عدد السطور في مصدر PostgreSQL الناتج، مثل عدد السطور التي تعود من جملة SELECT.

12

bool pg_close ([ resource $connection ] )

إغلاق الاتصال غير المستدام بقاعدة بيانات PostgreSQL المحددة.

13

string pg_last_error ([ resource $connection ] )

إرجاع آخر رسالة خطأ للاتصال المحدد.

14

string pg_escape_literal ([ resource $connection ], string $data )

هروب نص لاستخدامه في حقل نصي.

15

string pg_escape_string ([ resource $connection ], string $data )

هروب النص المستخدم في استعلام قاعدة البيانات.

اتصال بقاعدة البيانات

كود PHP التالي يوضح كيفية الاتصال بقاعدة البيانات الموجودة على الحاسوب المحلي، وإرجاع كائن اتصال قاعدة البيانات النهائي.

<?php
   $host                 = "host=127.0.0.1";
   $port                 = "port=5432";
   $dbname = "dbname = testdb";
   $credentials = "user = postgres password=pass123";
   $db = pg_connect("$host $port $dbname $credentials");
   if(!$db) {
      echo "خطأ : غير قادر على فتح قاعدة البيانات\n";
   } else {
      echo "تم فتح قاعدة البيانات بنجاح\n";
   }
?>

الآن، دعونا نن�行 البرنامج المقدم أعلاه لفتح قاعدة البيانات testdb: إذا تم فتح قاعدة البيانات بنجاح، فإنها ستعرض الرسالة التالية

تم فتح قاعدة البيانات بنجاح

إنشاء الجدول

برنامج PHP التالي سيتم استخدامه لإنشاء الجدول في قاعدة البيانات المسبقًا إنشاءها

<?php
   $host                 = "host=127.0.0.1";
   $port                 = "port=5432";
   $dbname = "dbname = testdb";
   $credentials = "user = postgres password=pass123";
   $db = pg_connect("$host $port $dbname $credentials");
   if(!$db) {
      echo "خطأ : غير قادر على فتح قاعدة البيانات\n";
   } else {
      echo "تم فتح قاعدة البيانات بنجاح\n";
   }
   
   $sql =<<<EOF
      CREATE TABLE COMPANY
      (ID INT PRIMARY KEY     NOT NULL,
      NAME           TEXT    NOT NULL,
      AGE            INT     NOT NULL,
      ADDRESS        CHAR(50),
      SALARY         REAL);
EOF;
   $ret = pg_query($db, $sql);
   if(!$ret) {
      echo pg_last_error($db);
   } else {
      echo "تم إنشاء الجدول بنجاح\n";
   }
   pg_close($db);
?>

عند تنفيذ البرنامج المقدم أعلاه، سيقوم بإنشاء جدول COMPANY في قاعدة البيانات testdb وعرض الرسالة التالية

تم فتح قاعدة البيانات بنجاح
تم إنشاء الجدول بنجاح

عملية INSERT

برنامج PHP التالي يوضح كيفية إنشاء سجلات في جدول COMPANY الذي تم إنشاؤه في مثال أعلاه

<?php
   $host                 = "host=127.0.0.1";
   $port                 = "port=5432";
   $dbname = "dbname = testdb";
   $credentials = "user = postgres password=pass123";
   $db = pg_connect("$host $port $dbname $credentials");
   if(!$db) {
      echo "خطأ : غير قادر على فتح قاعدة البيانات\n";
   } else {
      echo "تم فتح قاعدة البيانات بنجاح\n";
   }
   $sql =<<<EOF
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (1, 'Paul', 32, 'California', 20000.00 );
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (2, 'Allen', 25, 'Texas', 15000.00 );
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );
EOF;
   $ret = pg_query($db, $sql);
   if(!$ret) {
      echo pg_last_error($db);
   } else {
      echo "تم إنشاء السجلات بنجاح\n";
   }
   pg_close($db);
?>

عند تنفيذ البرنامج المحدد أعلاه، سيتم إنشاء السجلات المحددة في جدول COMPANY وسيتم عرض السطرين التاليين

تم فتح قاعدة البيانات بنجاح
تم إنشاء السجلات بنجاح

عملية SELECT

الPHP الآتي يظهر كيفية الحصول على وسحب السجلات من جدول COMPANY الذي تم إنشاؤه في الأمثلة

<?php
   $host                 = "host=127.0.0.1";
   $port                 = "port=5432";
   $dbname = "dbname = testdb";
   $credentials = "user = postgres password=pass123";
   $db = pg_connect("$host $port $dbname $credentials");
   if(!$db) {
      echo "خطأ : غير قادر على فتح قاعدة البيانات\n";
   } else {
      echo "تم فتح قاعدة البيانات بنجاح\n";
   }
   $sql =<<<EOF
      SELECT * from COMPANY;
EOF;
   $ret = pg_query($db, $sql);
   if(!$ret) {
      echo pg_last_error($db);
      exit;
   } 
   while($row = pg_fetch_row($ret)) {
      echo "ID = " . $row[0] . "\n";
      echo "NAME = " . $row[1] . "\n";
      echo "ADDRESS = " . $row[2] . "\n";
      echo "SALARY =  " . $row[4] . "\n\n";
   }
   echo "تم إتمام عملية بنجاح\n";
   pg_close($db);
?>

عندما يتم تنفيذ البرنامج المذكور أعلاه، سيكون له النتيجة التالية. يرجى ملاحظة أن الحقول ستُعاد بناءً على الترتيب الذي تم استخدامه لإنشاء الجدول.

تم فتح قاعدة البيانات بنجاح
ID = 1
NAME = Paul
ADDRESS               = California
SALARY = 20000
ID                   = 2
NAME                 = Allen
ADDRESS               = Texas
SALARY               = 15000
ID = 3
NAME = Teddy
ADDRESS               = Norway
SALARY = 20000
ID = 4
NAME = Mark
ADDRESS               = Rich-Mond
SALARY = 65000
تم إتمام عملية بنجاح

عملية UPDATE

الPHP الآتي يظهر كيفية استخدام جملة UPDATE لتحديث أي سجل، ثم الحصول على البقية من جدول شركتنا وسحب السجلات

<?php
   $host                 = "host=127.0.0.1";
   $port                 = "port=5432";
   $dbname = "dbname = testdb";
   $credentials = "user = postgres password=pass123";
   $db = pg_connect("$host $port $dbname $credentials");
   if(!$db) {
      echo "خطأ : غير قادر على فتح قاعدة البيانات\n";
   } else {
      echo "تم فتح قاعدة البيانات بنجاح\n";
   }
   $sql =<<<EOF
      UPDATE COMPANY set SALARY = 25000.00 where ID=1;
EOF;
   $ret = pg_query($db, $sql);
   if(!$ret) {
      echo pg_last_error($db);
      exit;
   } else {
      echo "تم تحديث السجل ب sucesso\n";
   }
   
   $sql =<<<EOF
      SELECT * from COMPANY;
EOF;
   $ret = pg_query($db, $sql);
   if(!$ret) {
      echo pg_last_error($db);
      exit;
   } 
   while($row = pg_fetch_row($ret)) {
      echo "ID = " . $row[0] . "\n";
      echo "NAME = " . $row[1] . "\n";
      echo "ADDRESS = " . $row[2] . "\n";
      echo "SALARY =  " . $row[4] . "\n\n";
   }
   echo "تم إتمام عملية بنجاح\n";
   pg_close($db);
?>

عندما يتم تنفيذ البرنامج المذكور أعلاه، ستظهر النتائج التالية

تم فتح قاعدة البيانات بنجاح
تم تحديث السجل ب sucesso
ID                   = 2
NAME                 = Allen
ADDRESS = 25
SALARY               = 15000
ID = 3
NAME = Teddy
ADDRESS = 23
SALARY = 20000
ID = 4
NAME = Mark
ADDRESS = 25
SALARY = 65000
ID = 1
NAME = Paul
ADDRESS = 32
SALARY = 25000
تم إتمام عملية بنجاح

عملية DELETE

الPHP الآتي يظهر كيفية استخدام جملة DELETE لحذف أي سجل، ثم الحصول على البقية من جدول COMPANY وسحب السجلات

<?php
   $host                 = "host=127.0.0.1";
   $port                 = "port=5432";
   $dbname = "dbname = testdb";
   $credentials = "user = postgres password=pass123";
   $db = pg_connect("$host $port $dbname $credentials");
   if(!$db) {
      echo "خطأ : غير قادر على فتح قاعدة البيانات\n";
   } else {
      echo "تم فتح قاعدة البيانات بنجاح\n";
   }
   $sql =<<<EOF
      DELETE from COMPANY where ID=2;
EOF;
   $ret = pg_query($db, $sql);
   if(!$ret) {
      echo pg_last_error($db);
      exit;
   } else {
      echo "تم حذف السجل بنجاح\n";
   }
   
   $sql =<<<EOF
      SELECT * from COMPANY;
EOF;
   $ret = pg_query($db, $sql);
   if(!$ret) {
      echo pg_last_error($db);
      exit;
   } 
   while($row = pg_fetch_row($ret)) {
      echo "ID = " . $row[0] . "\n";
      echo "NAME = " . $row[1] . "\n";
      echo "ADDRESS = " . $row[2] . "\n";
      echo "SALARY =  " . $row[4] . "\n\n";
   }
   echo "تم إتمام عملية بنجاح\n";
   pg_close($db);
?>

عندما يتم تنفيذ البرنامج المذكور أعلاه، ستظهر النتائج التالية

تم فتح قاعدة البيانات بنجاح
تم حذف السجل بنجاح
ID = 3
NAME = Teddy
ADDRESS = 23
SALARY = 20000
ID = 4
NAME = Mark
ADDRESS = 25
SALARY = 65000
ID = 1
NAME = Paul
ADDRESS = 32
SALARY = 25000
تم إتمام عملية بنجاح