0

背景:从 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,然后在显式编码时窒息?

4

2 回答 2

1

关闭问题....确认删除 :3306 端口更正了问题。显然是把php5.5改成php7.1。我不确定你会如何处理非标准的 mysql 端口——但对我来说不是问题。

于 2017-04-23T19:23:02.927 回答
1

根据 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

于 2018-01-17T12:16:01.817 回答