آموزش PDO در php

PDO کوتاه‌شده‌ی عبارت «PHP Data Objects» به معنی اشیای اطلاعاتی پی‌اچ‌پی است. PDO جدیدترین روش ارتباط با پایگاه داده از انواع مختلف به شمار می‌رود. با استفاده از PDO می‌توان به بیش از ۱۰ پایگاه داده‌ی مختلف از جمله MySQL، SQLite ، Firebird و SQL Server متصل شد.
علاوه بر این PDO قابل توسعه است و با ایجاد و نصب افزونه‌های جدید، امکان اتصال آن به انواع سیستم‌های ذخیره‌سازی اطلاعاتی فراهم است.

طراحی سایت با php

چرا از PDO استفاده می‌کنیم؟

در گذشته و در هنگام طراحی سایت با php دو روش برای ارتباط با پایگاه داده وجود داشته است. روش نخست و قدیمی‌تر دستوراتی هستند که با mysql پیشوند شده‌اند و دستوراتی که اندکی جدیدتر هستند، دستوراتی هستند که با عبارت mysqli شروع می‌شوند.

این دو سیستم هر یک مزایا و معایبی داشتند. با توجه حرکت اغلب زبان‌های برنامه‌نویسی به سمت سیستم‌هاش شیئ گرا، و نیاز به رابطی که بتواند با انواع مختلف پایگاه‌های داده ارتباط برقرار کند، PDO طراحی و در نگارش‌های جدید php به صورت پیش‌فرض قرار گرفت.

پایگاه داده

PDO بر خلاف دو روش قبلی، تنها با استفاده از سیستم شیئ‌گرایی قابل استفاده است. و مانند mysql و mysqli توابعی برای خواندن و نوشتن اطلاعات از پایگاه داده در اختیار برنامه‌نویسان قرار نمی‌دهد.

ارتباط با پایگاه داده در PDO به شکل زیر انجام می‌شود:

قرارگیری عبارت «mysql» در ابتدای dsn یا Data Source Name بالا سبب می‌شود تا PDO برای ارتباط با پایگاه داده از افزونه‌ی MySql استفاده کند.

در خط بعدی از برقراری ارتباط با پایگاه داده، با کمک دستور exec، نوع کدگذاری رشته‌های ارسال شده و دریافت شده به پایگاه داده را تعیین می‌کنیم. انجام این کار برای دریافت و ارسال عبارت‌های یونیکد و به زبان فارسی الزامی است.

اکنون برای خواندن اطلاعات به شکل زیر عمل خواهیم کرد:

مقدار بازگشتی در دستور query یک PDOStatement است که می‌تواند برای خواندن تک تک ردیف‌های دارای شرط کوئری مورد استفاده قرار گیرد.

همچنین می‌توانیم تعداد ردیف‌های موجود در PDOStatement را به صورت زیر محاسبه کنیم:

PDO علاوه بر پشتیبانی از سیستم قدیمی جلوگیری از SQL Injection، از روش جدید Prepared Statement هم پشتیبانی می‌کند که مانع رخداد خطاهای امنیتی می‌شود. در ادامه کدهایی برای شیوه‌ی عملکرد هر دو روش مشاهده می‌کنید:

با ارسال پارامتر به دستور execute می‌توانیم از دستورات bindValue صرف نظر و کدهای نوشته‌شده را کوتاه‌تر کنیم:

یکی دیگر از موارد مورد نیاز در هنگام خواندن و نوشتن اطلاعات از پایگاه داده، Transaction ها هستند.

Transaction زمانی کاربرد دارد که بخواهیم چندین کوئری را همراه یکدیگری اجرا کنیم و اگر به هر دلیل خطایی در یکی از کوئری‌ها ایجاد شد، تمامی کارهای انجام شده تا کنون به حالت قبل برگردند. مزیت دیگر استفاده از Transaction افزایش سرعت ذخیره‌سازی اطلاعات است. زیرا در حالت پیش‌فرض پس از هر ذخیره‌سازی اطلاعات، بررسی‌های امنیتی از ذخیره‌سازی کامل اطلاعات به انجام می‌رسد که نیازمند صرف مقداری زمان است. با استفاده از Transaction این عملیات تنها یک بار پس از پایان تمامی دستورات انجام خواهد شد.

برای ایجاد یک Transaction به شیوه‌ی زیر عمل می‌کنیم:

برای کسب اطلاعات بیشتر در خصوص استفاده از امکانات PDO می‌توانید به راهنمای php مراجعه کنید.


مشاهده‌ی تمامی نوشته‌ها در گروه: php. ‏ فهرست برچسب‌ها: , , .

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *