PHP PDO 初始化由于“双端口”而失败 - 未捕获的 PDOException:SQLSTATE[HY000] [2002]

2023-12-07

我收到这个错误

PHP 致命错误:未捕获 PDOException:SQLSTATE[HY000] [2002] 无法解析 [myPath]/xxDb.php:32 中的地址“localhost:3306:3306”

注意地址中的“双”端口:本地主机:3306:3306

xxDb.php line32 看起来像这样:

$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(使用前将#替换为@)

PHP PDO 初始化由于“双端口”而失败 - 未捕获的 PDOException:SQLSTATE[HY000] [2002] 的相关文章

随机推荐

  • Powershell 2 和 .NET:针对极大的哈希表进行优化?

    我正在涉足 Powershell 对 NET 完全陌生 我正在运行一个以空哈希表开头的 PS 脚本 哈希表将增长到至少 15 000 到 20 000 个条目 哈希表的键是字符串形式的电子邮件地址 值是布尔值 我只需要跟踪我是否看到过电子邮
  • 在表单身份验证中获取当前的 MembershipUser

    我想获取当前的MembershipUser从我的页面 Membership GetUser 返回空值 不能用 HttpContext Current User Identity Name 因为它根据我的配置返回我的配置文件名称以获取用户名
  • 重新训练 MobileNet SSD V1 COCO 后,Tensorflow 的 pb 和 pbtxt 文件无法与 OpenCV 一起使用

    我已关注this按照所述使用 Tensorflow GPU 重新训练 MobileNet SSD V1 的教程 使用 GPU 训练后损失为 0 5 下面有关配置的更多信息 并得到了model ckpt 这是我用于训练的命令 python m
  • 如何在maven中添加JaCoCo

    我已经使用 JUnit 编写了一个单元测试用例 现在我想在我的构建工具中添加 JaCoCo 该工具正在移动 3 2 1 我是 Maven 的新手 在添加它时 我不得不怀疑我想将它添加到依赖项或插件中吗 两者都可用 如下
  • Python:函数文档

    有没有一种方法可以检查 python 本身内部的函数或方法的作用 类似于 Matlab 中的帮助函数 我想获得函数的定义 而不必谷歌它 是的 您可以致电help whatever 在Python交互式解释器中 gt gt gt help T
  • 动态调整滚动视图中标签的大小?

    假设您有如下设置 ScrollView size hint 1 0 5 Label size hint 1 None 最初 标签没有内容 文本 如果我理解正确的话 当创建对象时 标签的高度是None 当应用程序运行时 标签的text属性设置
  • MS Excel LINEST、TREND、LOGEST 和 GROWTH 函数中的缺失值

    我在 Excel 2003 中使用 GROWTH 或 LINEST TREND 或 LOGEST 所有这些都会造成同样的麻烦 函数 但是存在一个问题 如果某些数据丢失 该函数将拒绝给出结果 You can 在这里下载文件 有什么解决方法吗
  • 登录 Microsoft SQL Server 错误:18456

    我在尝试连接到 SQL Server 时收到此错误 微软 SQL 服务器错误 18456 谁能告诉我错误代码是什么意思 如果您尝试使用 SQL Server 身份验证 进行连接 那么您可能需要修改服务器身份验证 在 Microsoft SQ
  • 不知道为什么这个函数返回一个反转的数组

    我正在做一个 JavaScript 练习 但在理清其工作原理的逻辑时遇到了一些麻烦 它基本上有一个名为 mystery 的函数 它使用一堆非常简单的函数 并返回一个你给它的数组 但顺序相反 我在白板前坐了一个小时 试图找出其背后的逻辑 但没
  • Dynamic_cast(pb) 返回 null

    在C Primer 5th 19 2 1中关于dynamic cast 它说 对于dynamic cast
  • URI:Module 的未定义方法“escape”

    我是一个研究 Ruby on Rails 的菜鸟 我正在尝试将 ruby on Rails 应用程序集成到 Quickbooks 中 我正在按照以下步骤这个视频 当我尝试按 连接到 QuickBooks 按钮进行身份验证时 我陷入了困境 我
  • 消除字符向量中非唯一元素的歧义

    给定一个由非唯一的患者姓名首字母组成的向量 init c AA AB AB AB AC 寻找消歧义如下 init1 c AA AB01 AB02 AB03 AC 即 唯一的首字母应保持不变 非唯一的首字母应通过添加两位数来消除歧义 使用指示
  • 从 boost::labeled_graph 获取节点标签

    我想检索 BGL 的labeled graph 中标记节点的标签 但找不到执行此操作的方法 以下 MWE 演示了我正在寻找的内容 g O3 question cpp o question exe I std c 11 lprotobuf l
  • VS2010 添加服务引用相对于直接 ClientBase<> 的优点

    我注意到 当在 VS2010 中使用 添加服务引用 时 会创建大量文件 其中一个文件是 Reference cs 它为服务合同创建一个 ClientBase 因此 我想知道 VS 创建的大量额外文件是否有任何优势 或者我可以自己使用 Cli
  • JavaScript 中的随机化 for 循环

    我有一个生成 html 的 for 循环 我希望这种方法随机生成元素 现在它们基本上是生成的 即 d1 d2 di 我希望它们遵循随机序列 即 d1 di di 3 di k for let i numberOfInputs i lt dl
  • 单例还是静态记录器?

    我当前的 C 应用程序是一个可执行文件 EXE 和一些 DLL 因此多个二进制文件 我想创建一个记录器 一些简单的自定义记录器 无论从何处调用它 都会写入单个文本文件 这应该在所有二进制文件 exe 和 dll 中可用 请注意 它是单线程应
  • 优化“for”循环

    std vector
  • 添加进度条

    我有一个使用一个类的 Windows 窗体应用程序 其名称是Parser 该表单有一个按钮 当我单击 Windows 表单应用程序按钮时 它会调用解析器类方法之一 此方法只需逐行读取文本文件并将每一行写入单独的文件 我想在表单中添加一个进度
  • 与 Paramiko 的嵌套 SSH 会话

    我正在将我编写的 Bash 脚本重写为 Python 该脚本的关键是 ssh t first com ssh second com very remote command 我在使用 paramiko 进行嵌套身份验证时遇到问题 我找不到任何
  • PHP PDO 初始化由于“双端口”而失败 - 未捕获的 PDOException:SQLSTATE[HY000] [2002]

    我收到这个错误 PHP 致命错误 未捕获 PDOException SQLSTATE HY000 2002 无法解析 myPath xxDb php 32 中的地址 localhost 3306 3306 注意地址中的 双 端口 本地主机