بسم الله الرحمن الرحيم
اولا تنبيهات
1- برجاء من مشرفى القسم تعديل الموضوع اول باول بالردود باقى الموضوع
نظرا لانى سوف اضع على اكثر رد
2-برجاء من مشرفى القسم مراجه تنسيق الموضوع لانى غير قادر على التنسيق الجيد
3- برجاء اعاده التدقيق الاملائى للموضوع من قبل مشرفى القسم
فالنبداء باذن الله
المقدمه - جزء نظرى اذا ارت اضافتها لمعلوماتك
الجزء العملى - وهنا يمكنا التنقل مباشر له وتخطى المقدمه
المقدمه:
PHP Data Objects هى ملحق تم اضافته على الاصدارات 5.1 من برنامج php
وظيفته التعامل مع قواعد البيانات بدل استخدام دوال mysql وايضا انها تتعمل مع قواعد بيانات اخرى غير mysql
جميع قواعد البيانات التى يمكن التعامل معها
كود:
CUBRID
MS SQL Server
Firebird/Interbase
IBM
Informix
MySQL
MS SQL Server
Oracle
ODBC and DB2
PostgreSQL
SQLite
4D
الجزء العملى :
اولا: تشغيل pdo
افتح ملف php.ini(اظن الكل يعرف هذا الملف)
لتشغيل pdo_mysql
الغى هذه العلامه ";" سوف تجدها لتكون هكذا
كود:
extension=php_pdo_mysql.dll
بدل من هكذا
;extension=php_pdo_mysql.dll
وبعد كده احفظ ورستر السيرفر
واذا اردت قاعده الاتصال بقاعده بيانات من نوع اخر
اذل العلام من امام اسم القاعده
كود:
extension=php_pdo_firebird.dll extension=php_pdo_informix.dll extension=php_pdo_mssql.dll extension=php_pdo_mysql.dll extension=php_pdo_oci.dll extension=php_pdo_oci8.dll extension=php_pdo_odbc.dll extension=php_pdo_pgsql.dll extension=php_pdo_sqlite.dll
لتاكد انها تعمل على قاعده البيانات mysql
الكود التالى
كود PHP:
if (extension_loaded('PDO_mysql')){
echo 'done';
}
للاتصال بقواعد البيانات كنت بتسخدم
كود PHP:
mysql_connect
mysql_select_db
ولكن اليوم سوف تسخدم تعريف الكلاس
هكذا
كود PHP:
$pdo_mysql = new PDO();
اكيد انت عارف مدخلات المطلوبه لاتصال قواعد البيانات
وهم اربعه
اسم السيرفر - اليوزر - كلمه السر - قاعده البيانات
ولكن هنا سوف نستخدم مدخل جديد وهو نوع قاعده البيانات وايضا الطريقه مخلتفه
لان سوف يتم تقسيمهم الى ثلاث مدخلات
الاول نوع قاعده البيانات واسم قاعده البيانات واسم السيرفر هكذا
كود:
mysql:dbname=test;host=127.0.0.1
ثانيا اسم اليوزر - ثالثا كلمه السر ليصبح كود الاتصال هكذا
كود PHP:
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'root';
$pass = '';
$dbh = new PDO($dsn, $user, $pass);
بعد عمليه الاتصال بأمكانك وضع العمليات قواعد البيانات (اضافه - تعديل - خذف)
باكثر من شكل
كود PHP:
$dbh->exec($sql);
ولكن تنبيه نتيجه هذه الداله تكون عدد العمليات التى تمت
يعنى لو بتعدل كلمه متكرره الى كلمه اخرى سوف تكون النتيجه العدد التعديلات التى تمت
والقصود بالنتيجه الداله يعنى لو طبعت نتائجها سوف تكون رقم
وايضا يمكن متابعه هكذا
كود PHP:
$dbh->query($sql);
ونتائجها هنا object او لا يوجد شى
وobject يعنى يمكن يكون مصفوفه او اى شى اخر حسب جمله sql التى كتبتها
مثال لنتائج مصفوفه
كود PHP:
$sql = "SELECT * FROM `tbpdo` LIMIT 0, 30 ";
$rows=$dbh->query($sql);
foreach ($rows as $row){
echo $row['id'] , ' : ' , $row['name'] , "<br>";
}
الشكل الثالث وهو لحمايه مدخلات وتحتوى على خصاص كتيره
وتكون بهذا الشكل
كود PHP:
$sql = "SELECT * FROM `tbpdo` LIMIT 0, 30 ";
$sth =$dbh->prepare($sql);
$sth->execute();
$rows=$sth->fetchAll();
ولحمايه مدخل فى عمليات المقارنه او التحقق تسخدم هكذا
كود PHP:
$sql = "SELECT * FROM `tbpdo` WHERE `name` = :name";
$sth =$dbh->prepare($sql);
$array = array(
':name' => 'mostafa'
);
$sth->execute($array);
$rows=$sth->fetchAll();
foreach ($rows as $row){
echo $row['id'] , ' : ' , $row['name'] , "<br>";
}
------------------------------
#او
------------------------------
$sql = "SELECT * FROM `tbpdo` WHERE `name` = ? ";
$sth =$dbh->prepare($sql);
$array = array(
'mostafa'
);
$sth->execute($array);
$rows=$sth->fetchAll();
foreach ($rows as $row){
echo $row['id'] , ' : ' , $row['name'] , "<br>";
}
فى انتظار اى مشكله فى التعامل او اى استفسار
تابع ,,,
التعامل مع الاخطاء 1
التعامل مع الاخطاء 2
Transactions تنفيذ اكثر من استعلام
الدالة lastInsertId والدالة quote