اگر دلیلی برای خواندن متن زیر نمیبینید، جواب کوتاه اینجاست : "از هر کدام که حس بهتری به شما میدهد استفاده کنید"
اما اگر دنبال چرا و دلایل مختلف میگردید، بد نیست بدانید:
mysqli = در حقیقت نسخه بهبود یافته MySQL است
pdo = مخفف PHP Data Objects است
هر دو گزینه مزایای خود را دارند:
البته MySQLi در گزارههای غیر آماده 2.5 درصد و در گزارههای از پیش آماده شده (Prepared Statement) 6.5 درصد سریعتر از pdo است.
***
PDO با 12 سیستم پایگاه داده مختلف کار میکند، درحالی که MySQLi تنها با پایگاه دادههای MySQL و MariaDB کار میکند.
***
بنابراین، اگر شما در روند پروژه ی خود مجبور شوید تا پایگاه داده ی پروژه خود را تغییر دهید یا به اصطلاح به پایگاه داده ی دیگری switch کنید، PDO روند کار را آسان میکند، زیرا شما فقط باید رشته اتصال (connection string) و چند query را تغییر دهید اما در صورت استفاده از MySQLi، شما باید کلیه کدها و queryها را دوباره بنویسید و تغییر دهید.
***
هر دو گزینه شیء گرا هستند، اما MySQLi رویههای API را نیز ارائه میدهد.
***
هر دو گزینه از دستورات آماده (Prepared Statement) پشتیبانی میکنند. دستورات آماده سیستم را از حملات SQL injection محافظت میکنند که برای امنیت برنامههای وب بسیار مهم هستند.