English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
تم تفعيل تعديل 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وحيث يقع الموقع الرسمي.
فيما يلي بعض الأمثلة المهمة من 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 وعرض الرسالة التالية
تم فتح قاعدة البيانات بنجاح تم إنشاء الجدول بنجاح
برنامج 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 وسيتم عرض السطرين التاليين
تم فتح قاعدة البيانات بنجاح تم إنشاء السجلات بنجاح
ال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 تم إتمام عملية بنجاح
ال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 تم إتمام عملية بنجاح
ال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 تم إتمام عملية بنجاح