يحدد ملحق PHP Data Objects (PDO) واجهة خفيفة الوزن ومتسقة لـ PHP للوصول إلى قواعد البيانات.
توفر شركة تنمية نفط عمان طبقة تجريد للوصول إلى البيانات، مما يعني أنه بغض النظر عن قاعدة البيانات المستخدمة، يمكن استخدام نفس الوظائف (الطرق) للاستعلام عن البيانات والحصول عليها.
تم إصدار PDO مع PHP5.1 ويمكن استخدامه أيضًا في ملحق PECL لـ PHP5.0، لكن لا يمكن تشغيله على إصدارات PHP السابقة.
يمكنك التحقق من تثبيت ملحق PDO من خلال وظيفة phpinfo() الخاصة بـ PHP.
في نظام Unix أو Linux، يلزمك إضافة الامتداد التالي:
الامتداد=pdo.so
يتم شحن PDO وجميع برامج التشغيل الرئيسية مع PHP كامتدادات مشتركة لتنشيطها، ما عليك سوى تحرير ملف php.ini وإضافة الامتداد التالي:
ملحق=php_pdo.dllبالإضافة إلى ذلك، هناك امتدادات مختلفة لقاعدة البيانات تتوافق مع ما يلي:
;extension=php_pdo_firebird.dll;extension=php_pdo_informix.dll;extension=php_pdo_mssql.dll;extension=php_pdo_mysql.dll;extensio n=php_pdo_oci.dll;extension=php_pdo_oci8.dll;extension=php_pdo_odbc.dll;extension=php_pdo_pgsql.dll;extension=php_pdo_sqlite.dll
بعد ضبط هذه التكوينات، نحتاج إلى إعادة تشغيل PHP أو خادم الويب.
بعد ذلك، دعونا نلقي نظرة على أمثلة محددة. وفيما يلي مثال لاستخدام PDO للاتصال بقاعدة بيانات MySql:
<?php$dbms='mysql'; // نوع قاعدة البيانات $host='localhost'; // اسم مضيف قاعدة البيانات $dbName='test'; // قاعدة البيانات المستخدمة $user='root'; $pass='' // كلمة المرور المقابلة $dsn="$dbms:host=$host;dbname=$dbName"; Try { $dbh = new PDO($dsn, $user, $pass); // تهيئة كائن PDO echo "تم الاتصال بنجاح<br/>" /*يمكنك أيضًا إجراء عملية بحث foreach ($dbh->query('SELECT * from FOO') as $row) { print_r($row) // يمكنك استخدام echo($GLOBAL); لرؤية هذه القيم} */ $dbh = null;} Catch (PDOException $e) { die ("Error!: " . $e->getMessage() ; . "<br/>");}// افتراضيًا، هذا ليس اتصالاً طويلًا. إذا كنت بحاجة إلى اتصال طويل بقاعدة البيانات، فأنت بحاجة إلى إضافة معلمة في النهاية: array(PDO::ATTR_PERSISTENT =>. صحيح) يصبح مثل هذا: $db = new PDO( $dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));?>الأمر بسيط للغاية، وبعد ذلك، دعونا نلقي نظرة فاحصة على التعليمات المحددة لـ PHP PDO:
الثوابت المحددة مسبقا
إدارة اتصال اتصال PHP PDO
معاملات PHP PDO والالتزام التلقائي
PHP PDO أعدت البيانات والإجراءات المخزنة
أخطاء PHP PDO ومعالجة الأخطاء
PHP PDO الكائنات الكبيرة (LOBs)
فئة الشركة المحمية:
PDO::beginTransaction - بدء المعاملة
PDO::commit — إجراء معاملة
PDO::__construct — قم بإنشاء مثيل PDO الذي يمثل اتصال قاعدة البيانات
PDO::errorCode - احصل على SQLSTATE المرتبط بالعملية الأخيرة لمقبض قاعدة البيانات
PDO::errorInfo — يقوم بإرجاع معلومات الخطأ الخاصة بعملية قاعدة البيانات الأخيرة
PDO::exec - تنفيذ عبارة SQL وإرجاع عدد الصفوف المتأثرة
PDO::getAttribute — استرداد سمات اتصال قاعدة البيانات
PDO::getAvailableDrivers — يقوم بإرجاع مجموعة من برامج التشغيل المتوفرة
PDO::inTransaction — تحقق مما إذا كان ضمن المعاملة
PDO::lastInsertId — يُرجع المعرف أو قيمة التسلسل لآخر صف تم إدراجه
PDO::prepare — إعداد عبارة SQL ليتم تنفيذها وإرجاع كائن PDOSTatement
PDO::query — تنفيذ عبارات SQL وإرجاع كائنات PDOStatement، والتي يمكن فهمها على أنها مجموعات نتائج
PDO::quote — إضافة علامات الاقتباس إلى السلاسل في عبارات SQL.
PDO::rollBack — استرجاع المعاملة
PDO::setAttribute - تعيين السمات
فئة بيان PDO:
PDOStatement::bindColumn - ربط عمود بمتغير PHP
PDOStatement::bindParam — ربط معلمة باسم المتغير المحدد
PDOStatement::bindValue — ربط قيمة بمعلمة
PDOStatement:: CloseCursor — يغلق المؤشر بحيث يمكن تنفيذ العبارة مرة أخرى.
PDOStatement::columnCount — يُرجع عدد الأعمدة في مجموعة النتائج
PDOStatement::debugDumpParams - طباعة أمر المعالجة المسبقة لـ SQL
PDOStatement::errorCode - احصل على SQLSTATE المرتبط بعملية مقبض العبارة الأخيرة
PDOStatement::errorInfo — احصل على معلومات موسعة عن الخطأ تتعلق بعملية معالجة العبارة الأخيرة
PDOStatement::execute - تنفيذ عبارة معدة
PDOStatement::fetch - احصل على الصف التالي من مجموعة النتائج
PDOStatement::fetchAll — يقوم بإرجاع مصفوفة تحتوي على جميع الصفوف في مجموعة النتائج
PDOStatement::fetchColumn — يُرجع عمودًا واحدًا من الصف التالي في مجموعة النتائج.
PDOStatement::fetchObject — الحصول على الصف التالي وإرجاعه ككائن.
PDOStatement::getAttribute — استرداد سمة البيان
PDOStatement::getColumnMeta - إرجاع البيانات التعريفية لعمود في مجموعة النتائج
PDOStatement::nextRowset - التقدم إلى مجموعة الصفوف التالية في مقبض بيان مجموعة الصفوف المتعددة
PDOStatement::rowCount — يُرجع عدد الصفوف المتأثرة بعبارة SQL السابقة
PDOStatement::setAttribute — تعيين سمة البيان
PDOStatement::setFetchMode — تعيين وضع الجلب الافتراضي للبيانات.