15

هل مازلت تستخدم mysql_* و لماذا لم تقم بالتطوير و تستخدم Pdo او mysqli ؟

هل مازلت تستخدم mysql_* و لماذا لم تقم بالتطوير و تستخدم Pdo او mysqli ؟

و اذا كنت تستخدمهم ما هي الافضل لك

Pdo ام Mysqli

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

15

طبعا PDO أفضل ،

  • تدعم أنواع متعددة من قواعد البيانات.

  • تدعم Exception بشكل جيد بحيث يمكن هندسة الكود بشكل أفضل لاقتناص الأخطاء.

  • تدعم Prepared Statement ، وهي ناحية أمنية ممتازة للتخلص من مشاكل SQL Injection دون الحاجة لفلترتها.

  • بسيطة ، كبساطة المكتبة mysqli.

ولكن لاحظت أن PDO فيها بعض العيوب ، لعل من أهمها :

  • عند محاولتك للحصول على Last Inserted ID ، قد تختلف الآلية من قاعدة بيانات لأخرى.

هذا الرد من فترة طويلة جدا قريته في موقع ستاك اوفرفلو و من يومها استخدم Pdo

The MySQL extension is:

Not under active development
Officially deprecated (as of PHP 5.5. It's likely to be removed in the next major release.)
Lacks an OO interface
Doesn't support:
    Non-blocking, asynchronous queries
    Prepared statements or parameterized queries
    Stored procedures
    Multiple Statements
    Transactions
    All of the functionality in MySQL 5.1

Since it is deprecated, using it makes your code less future proof.

Lack of support for prepared statements is particularly important as they provide a clearer, less error prone method of escaping and quoting external data than manually escaping it with a separate function call.

لم أعد أستخدم دوال mysql القديمة في بناء أي تطبيقات حالية , وأقوم بإستخدام mysqli و PDO نظراً لعدة أسباب :

أولاً : بسبب بعض الإحتياطات الأمنية والتنبيهات الكثيرة التي تجدها في كافة أمثلة موقع php.net عن التعامل مع قواعد البيانات سوف تجد هذه الجملة شائعة جداً : Please, do not use the mysql extension for new developments.

ثانياً : دعم البرمجة الكائنية OOP .

شخصياً أفضل استخدام PDO مع قواعد بيانات SQLite , و mysqli مع قواعد بيانات MySQL

ما زلت استخدم mysql لكنني سأتخلى عنها قريباً لصالح mysqli.

مكتبة PDO ضخمة و تدعم الكثير من قواعد البيانات التي لا احتاجها.

لذلك ارجح mysqli كبديل عن mysql

عدد سطور PDO == muysqli ، و PDO عموماً بسيطة، لذلك لا يوجد سبب منطقي لاستخدام mysqli ، ستحصر نفسك في قاعدة بيانات واحدة دون أدنى سبب.

اضن انك تتحدث عن php ؟

تم التخلي عن الدوال الخاصة ب mysql في الاصدارات الاخيرة أخيرا :)

استخدام PDO هو افضل خيار من عدة نواحي

1 كونه يتعامل مع القواعد بطريقة كائنية

2 من الممكن ان تحول الى اي محرك قواعد بأقل جهد