Не удалось проанализировать адрес на 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

Другие вопросы по тегам