pdo مخفف PHP Data Objects است که یک رابط ساده و سبک و امن جهت دسترسی به دیتا بیس می باشد.
جهت اتصال به دیتابیس با pdo ما می توانیم از روشی که خود php معرفی کرده است کمک بگیریم و اگر خواستیم آن را تغییر دهیم
پی اچ پی چیست ؟ php یک زبان برنامه نویسی همه منظوره منبع باز است که به طور گسترده برای ایجاد صفحات وب پویا و تعاملی استفاده می شود
PHP می تواند به طیف وسیعی از سیستم های مدیریت پایگاه داده رابطه ای مانند MYSQL، SQLite و PostgreSQL دسترسی داشته باشد
. نسخه PHP 5.1 یک کتابخانه انتزاعی اتصال پایگاه داده جدید ارائه می دهد که PHP Data Objects (PDO) است.
نحوه ارتباط با پایگاه داده در php با pdo
PDO به شیء داده ای در PHP است ، که یک رابط سبک و مداوم برای ارتباط باپایگاه داده در PHP تعریف می کند.
و این مجموعه ای از پسوندهای PHP است که یک کلاس اصلی PDO و درایور خاص پایگاه داده را ارائه می دهد. هر درایور پایگاه داده می تواند ویژگی های خاص پایگاه داده را به عنوان یک تابع پسوند منظم که رابط PDO را پیاده سازی می کند ، افشا کند.
عمدتاً PDO بر انتزاع دسترسی به داده ها به جای انتزاع پایگاه داده متمرکز است. این لایه انتزاعی دسترسی به داده را فراهم می کند، به این معنی که، صرف نظر از اینکه از کدام پایگاه داده استفاده می کنیم، باید از همان توابع ارائه شده توسط آن پایگاه داده برای صدور پرس و جو و واکشی داده ها استفاده کنیم. PDO انتزاع داده را ارائه نمی دهد، زیرا SQL را بازنویسی نمی کند یا ویژگی های از دست رفته را شبیه سازی نمی کند.
مزیت PDO
PDO راه های مختلفی را برای کار با اشیا ارائه می دهد و عبارات آماده شده را بازیابی می کند که کار را بسیار آسان تر می کند. این یک ابزار دسترسی به پایگاه داده در PHP است که از طریق آن دسترسی یکسان به چندین پایگاه داده را امکان پذیر می کنیم.
پی دی او امکان سوئیچ نسبتاً یکپارچه بین پایگاههای داده و پلتفرمهای مختلف را فراهم میکند که میتواند به راحتی با تغییر رشته اتصال انجام شود. از نحوهای خاص پایگاه داده پشتیبانی نمی کند.
برخی از مزایای pdo به شرح زیر است
پشتیبانی از پایگاه داده
کانکشن PDO می تواند به هر پایگاه داده ای که برای درایور PDO نوشته شده است دسترسی داشته باشد. چندین درایور PDO در دسترس هستند که برای پایگاههای داده FreeTDS، Microsoft SQL Server، Sybase، IBM DB2، Oracle Call Interface، Firebird/Interbase 6، و پایگاههای داده PostgreSQL و بسیاری موارد دیگر استفاده میشوند.
درایورها در هر سیستمی به طور خودکار در دسترس نیستند، بنابراین باید درایورهای موجود خود را پیدا کرده و در صورت نیاز به آنها اضافه کنیم.
اتصال پایگاه داده به وسیله پی دی او
دستورهای مختلفی برای ایجاد اتصال پایگاه داده وجود دارد. این نحوها به پایگاه داده های خاصی بستگی دارند. هنگام استفاده از PDO، عملیات باید در بلوکهای try/catch پیچیده شود و از تکنیک استثنا استفاده شود.
معمولاً فقط باید یک اتصال ایجاد شود و این اتصالات با برنامه نویسی پایگاه داده به صورت null بسته می شوند.
رسیدگی به خطا
PDO اجازه استفاده از استثناها را برای رسیدگی به خطا می دهد. برای ایجاد یک استثنا، PDO را می توان به یک ویژگی حالت خطای مربوطه وادار کرد.
سه حالت خطا وجود دارد، یعنی خاموش (پیشفرض)، هشدار و استثنا. هشدار و استثنا در برنامه نویسی DRY مفیدتر هستند.
بی صدا – این یک حالت خطای پیش فرض است.
هشدار – برای رفع اشکال مفید است.
استثنا – این حالت به شما اجازه می دهد تا با مخفی کردن داده هایی که ممکن است یک شخص برای سوء استفاده از سیستم شما از آنها استفاده کند، خطاها را به خوبی مدیریت کند.
درج و به روز رسانی جداول دیتابیس
PDO عملیات درج و به روز رسانی رایج پایگاه داده را به یک فرآیند دو مرحله ای کاهش می دهد.
آماده >> [Bind] >> اجرا کنید.
از طریق این روش، میتوانیم از عبارات آمادهشده PDO که از طریق تزریق SQL در برابر حملات مخرب محافظت میکند، بهره کامل ببریم.
دستورات آماده شده، دستورات SQL از پیش کامپایل شده ای هستند که می توانند چندین بار با ارسال این داده ها به سرور اجرا شوند. این داده ها که در محل نگهدارنده استفاده می شوند، به طور خودکار از حمله تزریق SQL محافظت می شوند.
کلاس های PDO
سه کلاس PDO وجود دارد که در زیر آورده شده است:
PDO – نشان دهنده ارتباط بین PHP و پایگاه داده است.
PDOStatement – بیانگر بیانیه آماده شده است و پس از اجرای دستور، یک نتیجه مرتبط را تنظیم می کند.
PDOException – نشان دهنده خطاهای مطرح شده توسط PDO است.
پایگاه های داده پشتیبانی شده توسط پی دی او
- MySQL
- PostgreSQL
- Oracle
- Firebird
- MS SQL Server
- Sybase
- Informix
- IBM
- FreeTDS
- SQLite
- Cubrid
- 4D
مقایسه بین PDO و Mysqli
برای دسترسی به پایگاه داده با استفاده از PHP ، ما عمدتاً دو گزینه داریم – MySQLI و PDO (شیء داده PHP). MySQLI یک بومی برای PHP است که عملکرد سریع تری را فراهم می کند
جایی که توسعه دهندگان با تجربه ترجیح می دهند با PDO به عنوان متنوعی از پایگاه داده کار کنند. تفاوت هایی بین PDO و MySQLI در زیر بر اساس ویژگی های آنها وجود دارد.
کدام یک باید بین PDO یا MySQLi ترجیح داده شود؟
هر دو PDO و MySQLi مزایای خاص خود را دارند:
همانطور که قبلاً دیدیم که pdo روی 12 سیستم پایگاه داده مختلف کار می کند، در حالی که MySQL فقط با پایگاه داده MySQL کار می کند.
بنابراین، اگر بخواهیم پروژه خود را به پایگاه داده دیگری تغییر دهیم، pdo کار را آسان می کند.در MySQLi باید کل کد را بازنویسی کنیم.
pdo و MySQLi هر دو شی گرا هستند، اما MySQLi یک API رویه ای نیز ارائه می دهد.
. هر دو از بیانیه های آماده شده پشتیبانی می کنند. بیانیه های آماده شده برای امنیت برنامه های وب مهم هستند، زیرا در برابر تزریق SQL محافظت می کنند.