Попытка подключения Mysql работает нормально в 5.2.9, но не в 5.3.0 - помогите?
-
26-09-2019 - |
Вопрос
У меня проблемы с выполнением вторичного подключения MySQL (до отдельной, внешней БД) в моем коде. Он отлично работает в PHP 5.2.9, но не подключается в PHP 5.3.0. Я знаю (по крайней мере) из изменений, необходимых для успешных подключений MySQL в более новой версии PHP, и преуспел раньше, поэтому я не уверен, что это не работает на этот раз.
У меня уже есть соединение БД, открытое в локальную базу данных. Эта функция ниже используется для выполнения дополнительного подключения к отдельному удаленному каталогу. Включенный файл Config Config просто содержит информацию о внешней базе данных (хост, пользователь, пропуск и имя). Я проверил, и он включен правильно.
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
И укажите значения по умолчанию для расширения (ы), которые вы используете (MySQL, MySQLI, PDO). Например, в Debian вам необходимо указать путь к розетке (например,. /var/run/mysqld/mysqld.sock
) себя в INI-файле. Просто пройдите через файл INI и укажите отсутствующие параметры, и он должен работать.