【问题标题】:Failed to parse address on mysqli_connect无法解析 mysqli_connect 上的地址
【发布时间】:2017-09-20 04:04:11
【问题描述】:

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

【问题讨论】:

    标签: mysqli php-7.1 fpm easyapache-4


    【解决方案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

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    • 已编辑。谢谢,对不起
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2020-08-06
      • 1970-01-01
      • 2022-10-24
      • 2020-12-29
      • 2021-01-11
      • 1970-01-01
      • 2016-04-08
      • 2016-05-03
      • 2021-01-10
      相关资源
      最近更新 更多