پی دی او

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

PDO یک افزونه سبک و قدرتمند PHP برای اتصال به دیتابیس است. از خصوصیات خوب این افزونه که از نسخه ۵٫۱ روی PHP نصب شده موارد زیر است:[۱]

  • پشتیبانی از دیتابیس‌های متنوع از جمله مای‌اس‌کیوال، MsSQL، اس‌کیوال لایت و غیره با توابع ثابت. امکان فوق العاده PDO که اجازه میده تا بدون تغییر کدها، دیتابیس رو تغییر بدیم. یعنی مثلا اگر Applicationای با MySQL ساخته باشیم و تحت شرایطی مجبور به تغییر دیتابیس به MsSQL باشیم، اگر سینتکس کوئری‌ها مشکلی ایجاد نکند، کافیه دیتابیس رو تعویض کنیم و همین. برای سیستمهای بزرگ این یک مزیت خیلی مهم است.
  • پشتیبانی از Exceptionهای PHP.Exceptionها امکان کنترل و بدست گیری خطاها رو به برنامه نویس می‌دهد. PDO امکان کنترل خطاهای دیتابیس رو هم به برنامه نویس می‌دهد.
  • پشتیبانی از Prepared Statement و Stored Procedureها و Multiple Recordset. این سه مورد هیچ کدوم توسط توابع MySQL اجرا نمی‌شوند. PDO مورد آخر رو در حال حاضر برای MySQL پشتیبانی نمی‌کند.
  • طراحی شده به شکل کلاس. قابلیت مهمی که امکان گسترش و شخصی سازی PDO رو میده مثلا رفتار توابعش رو تغییر بدیم یا توابع جدیدی بهش اضافه کنیم و در واقع همه امکانات شی گرایی رو باهاش داشته باشیم.
    PDO از سه تا کلاس تشکیل شده:
    • کلاس اصلی به نام PDO که حاوی توابع اصلی مثل اجرای کوئری و اتصال و غیره است.
    • کلاس با نام PDOStatement حاوی توابع برای پردازش و بهره‌گیری از کوئری‌های اجرا شده است مثل fetch.
    • کلاس PDOException برای بدست گیری خطاهای رخ داده.

نحوه اتصال[ویرایش]

با توجه به اینکه PDO یک کلاس است اتصال به دیتابیس با نمونه گیری این کلاس شروع میشه:

$pdo = new PDO('mysql:dbname=mydatabase;host=localhost', 'db_username', 'db_password');

اجرای کوئری[ویرایش]

$assoc_row = $stmt->fetch(PDO::FETCH_ASSOC);
echo "Name: ". $assoc_row['name'];
echo "Age: ". $assoc_row['age'];
 
$num_row = $stmt->fetch(PDO::PDO::FETCH_NUM);
echo "Name: ". $num_row[1];
echo "Age: ". $num_row[2];
 
$obj_row = $stmt->fetch(PDO::PDO::FETCH_OBJ);
echo "Name: ". $obj_row->name;
echo "Age: ". $obj_row->age;
 
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($rows as $row) {
    echo "Name: ". $row['name'];
    echo "Age: ". $row['age'];
}

منابع[ویرایش]