سؤال

لقد قمت بتطوير تطبيق PHP مفتوح المصدر ويستخدم حاليًا كلاً من MySQLi أو MySQL من أجل التوافق مع الإصدارات السابقة.أنا أتساءل عن تبديلها لتكون متوافقة مع MySQLi فقط لأن PHP لم تعد تدعم MySQL.سبب آخر لرغبتي في الابتعاد عن دعم كل من MySQL و MySQLi هو أنني أستخدم MySQLi بنفس الطريقة التي استخدمها مع امتداد MySQL القديم.هل يستطيع أحد أن يشرح لي ما إذا كانت هذه فكرة جيدة أم سيئة؟

هل كانت مفيدة؟

المحلول

إذا كنت ستقوم بالتبديل على أي حال ، فيجب أن تفكر حقًا في استخدام PDO بدلاً من MySQLi.

تتمثل الفائدة الرئيسية في أن التطبيق الخاص بك سيكون قادرًا على العمل مع أي من 11 خلفية قاعدة بيانات أخرى التي تدعمها PDO ، بأقل قدر من الضجة.\ n قد لا تكون هذه أولوية بالنسبة لك ، ولكن نظرًا لأن هذا تطبيق مفتوح المصدر ، فليس هناك سبب وجيه لعدم محاولة جعله مرنًا قدر الإمكان.أيضًا ، ستكون قادرًا على استخدام المعلمات المسماة في عباراتك المعدة (يدعم MySQLi العبارات المعدة ، ولكن ليس المعلمات المسماة).

على أي حال ، فإن الابتعاد عن وظائف mysql_* فكرة جيدة جدًا .في هذه الأيام ، إنها مجرد بقايا من الماضي (المظلم) ، وما لم يكن التوافق مع الإصدارات السابقة شرطًا لا مفر منه ، فلا يوجد سبب على الإطلاق لاستخدامه.

نصائح أخرى

الطريقة المفضلة هي استخدام mysqli فقط.كما قلت ، لم يعد امتداد MySQL الأقدم مدعومًا.يمكن لكليهما الاتصال بمعظم إصدارات خادم MySQL ، لذلك لا يوجد سبب على الإطلاق لاستخدام الامتداد القديم.

فيما يتعلق بالأداء ، فإن mysqli أفضل ، إذا كان المستخدمون المستهدفون يعتمدون على mysql فقط ، \ n ثم استخدم mysqli وإلا يمكنك تجربة PDO التي ستمنحك المرونة في الاتصال بقواعد البيانات الأخرى بأقل قدر من التغييرات.

أعتقد أن PDO أبطأ قليلاً بسبب حقيقة أنه أكثر عمومية مقارنةً بـ mysqli أو oci ، لكن هذا لا يدعو للقلق.

يمكنك إنشاء نصين ، أحدهما مع PDO والآخر مع Mysqli وأنت اباتشي AB للمعيار.\ n مع الاختبار الذي أجريته ، كان Mysqli أسرع قليلاً من حيث معالجة الطلب مقارنةً بـ PDO ولكن يجب أن أعترف أنه كان ضئيلاً.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى softwareengineering.stackexchange
scroll top