اگر دلیلی برای خواندن متن زیر نمی بینید، جواب کوتاه اینجاست : "از هر کدام که حس بهتری به شما میدهد استفاده کنید"
اما اگر دنبال چرا و دلایل مختلف میگردید، بد نیست بدانید:
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 محافظت می کنند که برای امنیت برنامه های وب بسیار مهم هستند.