我收到这个错误
PHP 致命错误:未捕获 PDOException:SQLSTATE[HY000] [2002] 无法解析 [myPath]/xxDb.php:32 中的地址“localhost:3306:3306”
注意地址中的“双”端口:本地主机:3306:3306
xxDb.php line
32 看起来像这样:
$db = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8', DB_USER, DB_PW, array( PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8" ));
转储 DB_HOST 会导致localhost:3306
.
我看不到第二个端口部分在哪里3306
来自连接初始化期间显然存在的。
非常感谢任何帮助。
showdev 的评论是正确的,即 PDO DSN 不允许主机:端口语法。
如果您的 CMS 在您的控制之外定义 DB_HOST,则您不能直接使用该常量。但你可以从中提取信息。
$host_port = preg_replace('/:(\d+)/', ';port=${1}', DB_HOST);
$db = new PDO("mysql:host={$host_port};dbname=".DB_NAME.";charset=utf8",
DB_USER, DB_PW, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)