MySQL در مقابل MySQLi Extension
MySQL یک سیستم مدیریت پایگاه داده رابطه ای محبوب (RDBMS) است. این یک DBMS منبع باز است که به طور گسترده حتی در شرکت های بزرگ مانند ویکی پدیا، گوگل و فیس بوک استفاده می شود. PHP (مخفف PHP: Hypertext Preprocessor) یک زبان برنامه نویسی سمت سرور است که به ویژه برای توسعه صفحات وب پویا و تعاملی مناسب است. MySQL و MySQLi دو پسوند ارائه شده برای تعامل برنامه های PHP با پایگاه داده MySQL هستند. این دو افزونه با استفاده از چارچوب پسوند PHP پیادهسازی میشوند و یک API (رابط برنامهنویسی کاربردی) را برای برنامهنویسان PHP برای تعامل با پایگاههای داده MySQL فراهم میکنند.
افزونه MySQL چیست؟
MySQL Extension اولین پسوند ارائه شده برای توسعه برنامه های PHP است که می تواند برای تعامل با پایگاه های داده MySQL استفاده شود. این یک رابط رویه ای برای برنامه نویسان PHP برای تعامل با پایگاه های داده MySQL فراهم می کند. این برنامه افزودنی فقط برای نسخه های MySQL که قدیمی تر از نسخه 4.1.3 هستند استفاده می شود. حتی اگر این می تواند با MySQL نسخه 4.1.3 یا جدیدتر استفاده شود، هیچ یک از ویژگی های جدید در آن نسخه ها در دسترس نخواهد بود. در حال حاضر هیچ پیشرفت فعالی در MySQL Extension وجود ندارد و برای پروژه های جدید توصیه نمی شود. علاوه بر این، MySQL Extension از بیانیه های آماده شده در سمت سرور یا بیانیه های آماده شده در سمت سرویس گیرنده پشتیبانی نمی کند. همچنین از رویههای ذخیرهشده یا مجموعه نویسهها پشتیبانی نمیکند.
افزونه MySQLi چیست؟
MySQLi Extension (که به آن پسوند بهبود یافته MySQL نیز گفته می شود) افزونه جدیدی است که برای توسعه برنامه های PHP که می توانند با پایگاه های داده MySQL تعامل داشته باشند ارائه شده است.این برنامه افزودنی برای استفاده حداکثری از ویژگی های موجود در MySQL نسخه 4.1.3 یا جدیدتر توسعه یافته است. پسوند MySQLi ابتدا با PHP نسخه 5 گنجانده شده است و در تمام نسخه های بعدی گنجانده شده است. افزونه MySQLi علاوه بر ارائه یک رابط رویه ای برای برنامه نویسان PHP، یک رابط شی گرا نیز ارائه می دهد. این همچنین از عبارات آماده شده سمت سرویس گیرنده/سرور و بیانیه های متعدد پشتیبانی می کند. علاوه بر این، از Charset ها و رویه های ذخیره شده پشتیبانی می کند.
تفاوت بین MySQL و MySQLi Extension چیست؟
حتی اگر هم MySQL Extension و هم MySQLi Extension افزونه هایی هستند که برای توسعه برنامه های PHP که می توانند با پایگاه های داده MySQL تعامل داشته باشند، ارائه شده اند، MySQLi Extension پیشرفت های کلیدی نسبت به MySQL Extension دارد. اولاً، MySQL Extension برای استفاده با نسخههای MySQL قدیمیتر از 4.1.3 توصیه میشود، در حالی که MySQLi Extension برای استفاده با نسخههای MySQL 4.1.3 یا جدیدتر توصیه میشود. همچنین، MySQLi Extension تنها با نسخه های PHP 5 یا جدیدتر گنجانده شده است. MySQL Extension تنها یک رابط رویه ای برای برنامه نویسان PHP فراهم می کند، در حالی که MySQLi Extension یک رابط شی گرا (علاوه بر رابط رویه ای) ارائه می دهد. علاوه بر این، MySQLi Extension از عبارات آماده شده و چندین عبارت پشتیبانی می کند که در MySQL Extension پشتیبانی نمی شوند. MySQLi Extension در مقایسه با MySQL Extension قابلیت های رفع اشکال بهبود یافته ای را ارائه می دهد. علاوه بر این، MySQLi Extension پشتیبانی سرور تعبیه شده و پشتیبانی از تراکنش را ارائه می دهد که در پسوند MySQL موجود نبود. حتی اگر میتوان از MySQL Extension با نسخههای MySQL 4.1.3 یا جدیدتر استفاده کرد، هیچ یک از ویژگیهای جدید موجود در آن نسخههای MySQL در دسترس نخواهد بود.