Не удалось проанализировать адрес на mysqli_connect
Фон: преобразован из EasyApache3 -> EasyApache4 (Cpanel). Перешел из mpm-prefork/php5.5/dso в mpm-worker/php71fpm/fastcgi.
Сообщение об ошибке:
Failed to parse address "127.0.0.1:3306:3306" in /home/user/conndb/conndb.php on line 2
Код является:
<?php
$con = mysqli_connect('127.0.0.1:3306','user','password','database');
?>
Я провел предыдущий тест этой конфигурации на тестовом сервере без проблем - настолько озадаченный, что столкнулся с этим на производстве. Пробовал переход на localhost, но без разницы. Пришлось вернуться к конфигу EasyApache3.
Я в тупике. Обратите внимание, что в сообщении об ошибке порт повторяется дважды. Интересно, достаточно ли "умна" эта версия mysqli, чтобы знать, как вставить сам 3306, а затем задохнуться, когда он явно закодирован?
2 ответа
Закрытие вопроса.... подтвердил, что удаление порта:3306 исправило проблему. Очевидно, что изменение php5.5 в php7.1. Я не уверен, как бы вы справились с нестандартным портом mysql - но для меня это не проблема.
Согласно документации PHP, если вы используете нестандартный порт, вы должны передать его в качестве пятого параметра -
// change the last parameter to whatever your DB port is
$con = mysqli_connect('127.0.0.1' 'username', 'password', 'database', 3306);
А под "нестандартным портом" понимается все, отличающееся результатом
echo ini_get("mysqli.default_port");
потому что это значение по умолчанию для этого параметра.
Страница документации PHP - http://php.net/manual/en/mysqli.construct.php