آموزش استفاده از PDO در PHP

آموزش استفاده از PDO در PHPReviewed by همیار پروژه on Jul 27Rating: 4.5آموزش استفاده از PDO در PHPآموزش استفاده از PDO در PHP

آموزش استفاده از PDO در PHP

آموزش استفاده از PDO در PHP

سلام ; با آموزش استفاده از PDO در PHP در خدمت شما عزیزان هستیم . PDO یک افزونه سبک و قدرتمند PHP برای اتصال به دیتابیسه . از خصوصیات مهمش میشه به پشتیبانی از دیتابیسهای متنوع از جمله MySQL، MsSQL، SQLite و غیره با توابع ثابت اشاره کرد . امکانات فوق العاده PDO اجازه میده تا بدون تغییر کدها، دیتابیس رو تغییر بدیم. یعنی مثلا اگر Applicationای با MySQL ساخته باشیم و تحت شرایطی مجبور به تغییر دیتابیس به MsSQL باشیم، اگر سینتکس کوئری ها مشکلی ایجاد نکنه، کافیه دیتابیس رو تعویض کنیم و همین. برای سیستمهای بزرگ این یک مزیت خیلی مهمه. پشتیبانی از Exceptionهای PHP هم میتونه مزیت مهمی باشه .

Exceptionها امکان کنترل و بدست گیری خطاها رو به برنامه نویس میده. PDO امکان کنترل خطاهای دیتابیس رو هم بهمون میده.
پشتیبانی از Prepared Statement و Stored Procedure ها و Multiple Recordset.و میتونیم به طراحی شده به شکل کلاس نیز اشاره کرد.

قابلیت مهمی که امکان گسترش و شخصی سازی PDO رو میده مثلا رفتار توابعش رو تغییر بدیم یا توابع جدیدی بهش اضافه کنیم و در واقع همه امکانات شی گرایی رو باهاش داشته باشیم.

 

پیشنهاد ویژه :  سورس آماده آپلود سنتر تصاویر در PHP

 

PDO از سه تا کلاس تشکیل شده:

  1. کلاس اصلی به نام PDO که حاوی توابع اصلی مثل اجرای کوئری و اتصال و غیره است.
  2. کلاس با نام PDOStatement حاوی توابع برای پردازش و بهره گیری از کوئری های اجرا شده است مثل fetch.
  3. کلاس PDOException برای بدست گیری خطاهای رخ داده.

 

آموزش استفاده از PDO در PHP :

 

نحوه اتصال :

با اینکار ما به دیتابیس مورد نظرمون متصل شدیم. پارامتر اول فرمت خاصی داره. همونجور که میبینی در پارامتر اول، ما نوع دیتابیس که MySQL هست رو هم مشخص کردیم. برای قطع اتصال هم کافیه این شی رو از بین ببریم. اینجوری:

 

اجرای کوئری :

با سه نوع تابع میشه یک کوئری رو اجرا کرد.
کوئری های آماده یا ساده توسط تابع PDO::query اجرا میشند و یک شی از کلاس PDOStatement برمیگردونند.

متغیر stmt$ یک نمونه کلاس PDOStatement هست که توابع خودش رو داره. میخوایم این کوئری رو Fetch کنیم. برای اینکار چند مدل تابع وجود داره. تابع PDOStatement::fetch که در حالت پیشفرض مشابه تابع mysql_fetch_arrayعمل میکنه.

توسط پارامتر میشه به این تابع فهموند که چه مدلی آرایه ای تولید کنه :

پیشنهاد ویژه :   سورس برنامه سنگ قبر در B4A

تابع PDOStatement::fetchAll مشابه تابع قبل عمل میکنه ولی یک آرایه برمیگردونه از سطرهای بدست اومده به اضافه اینکه حافظه ی اشغال شده برای کوئری (داخل PDO) رو هم آزاد میکنه.

مشکلی که PDO داره اینه که نمیشه هنگام fetch شدن یک کوئری، کوئری دیگه ای رو fetch کرد! یعنی تابع fetch دوم کد زیر هیچی برنمیگردونه:

توابع مهم دیگه شی PDOStatement تا اینجا تابع rowCount و nextRowset هستند.اولی مثل mysql_num_rows تعداد سطرهای بدست اومده رو میده و دومی وقتی بکار میاد که کوئری بجای یک دسته سطر، چند دسته سطر رو برگردونه. این حالت توی Stored Procedureها رخ میده که من بتونم با یک کوئری چند مدل RecordSet یا دسته سطر داشته باشم. این تابع در MySQL فعلا کار خاصی نمی کنه!

حالت دوم اجرای کوئری ها، مواقعی است که مقدار برگشتی نداریم مثل عملیات INSERT یا DELETE و غیره. تابع PDO::exec مثل PDO::query ، کوئری اجرا میکنه ولی فقط تعداد سطرهایی رو برمیگردونه که تحت تاثیر قرار گرفته اند. حسن این تابع اینه که از تابع PDO::query سریعتره.

زمانی که لازم داریم تا یک کوئری رو بر اساس مقادیری به دفعات اجرا کنیم، حالت عادی بهینه نیست. PDO امکان میده تا کوئری رو با پارامترهای مشخص ابتدا معرفی کنیم تا در دیتابیس پردازش بشه و بعد هر تعداد که میخوام اجراش کنیم. تابع PDO::prepare این کار رو میکنه و مثل PDO::query یک شی PDOStatement برمیگردونه که هنوز کامل اجرا نشده:

pdo بسیار گسترده و بسیار ساده است فقط چند مورد تونستم براتون مثال بزنم.

موفق باشید

همیار پروژه PHP آموزش PHP

دیدگاه خود را بیان کنید