تعمل محاولة اتصال MySQL بشكل جيد في 5.2.9 ولكن ليس في 5.3.0 - مساعدة؟

StackOverflow https://stackoverflow.com/questions/2816915

سؤال

أواجه مشكلة في إجراء اتصال MySQL ثانوي (إلى ديسيبل منفصل خارجي) في الكود الخاص بي. إنه يعمل بشكل جيد في PHP 5.2.9 لكنه فشل في الاتصال في PHP 5.3.0. إنني على دراية بـ (على الأقل بعض) التغييرات اللازمة لإجراء اتصالات MySQL الناجحة في الإصدار الأحدث من PHP ، وقد نجحت من قبل ، لذلك لست متأكدًا من عدم عملها هذه المرة.

لدي بالفعل اتصال DB مفتوح لقاعدة بيانات محلية. ثم يتم استخدام هذه الوظيفة أدناه لإجراء اتصال إضافي إلى دليل منفصل عن بُعد. يحتوي ملف التكوين المضمن ببساطة على تفاصيل قاعدة البيانات الخارجية (المضيف والمستخدم والتمرير والاسم). لقد راجعت ويتم تضمينه بشكل صحيح.

function connectDP() {
    global $dpConnection;

    include("secondary_db_config.php);
    $dpConnection = mysql_connect($dp_dbHost, $dp_dbUser, $dp_dbPass, true) or DIE("ERROR: Unable to connect to Deployment Platform");
    mysql_select_db($dp_dbName, $dpConnection) or DIE("ERROR 006: Unable to select Deployment Platform Database");
}

أحاول بعد ذلك إجراء هذا الاتصال الجديد ببساطة عن طريق استدعاء هذه الوظيفة خارجيًا:

connectDP();

ولكن عند تحميل الصفحة (في 5.3.0) ، أحصل على الرسالة:

ERROR: Unable to connect to Deployment Platform

أنا أستخدم الاختياري new_link العلم منطقي كحجة رابعة في mysql_connect() الوظيفة وما زالت لا تعمل.

لقد كنت أتعامل مع عقلي هذا الصباح في محاولة لمعرفة سبب عدم عمل هذا الاتصال (بينما فعلت شيئًا مشابهًا جدًا في أي مكان آخر في قاعدة بيانات ثانية منفصلة تعمل). سيكون موضع تقدير أي مساعدة.

شكرًا!

ثري

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

المحلول

نظرًا لأن PHP 5.3 يستخدم برنامج تشغيل MySQL الخاص به (MySqlnd) افتراضيًا ، بدلاً من libmysqlclient. اعتمادًا على النظام الأساسي ، لا يمكن قراءة الإعدادات الافتراضية من ملف تكوين MySQL الخاص بك (على سبيل المثال. /etc/mysql/my.cnf). تحتاج إلى تعديل php.ini وحدد الإعدادات الافتراضية للتمديد (s) الذي تستخدمه (MySQL ، MySqli ، PDO). على سبيل المثال في Debian ، تحتاج إلى تحديد المسار إلى المقبس (على سبيل المثال. /var/run/mysqld/mysqld.sock) نفسك في ملف INI. ما عليك سوى الانتقال إلى ملف INI وحدد الخيارات المفقودة ويجب أن يعمل.

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