gpt4 book ai didi

php - 启用 PDO 后 - 错误 2002 getaddrinfo 失败 : Name or service not known

转载 作者:行者123 更新时间:2023-12-02 22:22:39 25 4
gpt4 key购买 nike

我最近了解了 PDO,所以我更改了我的 php 文件以适应格式,现在我得到了这个响应:

错误:SQLSTATE[HY000] [2002] php_network_getaddresses:getaddrinfo 失败:名称或服务未知

我没有更改连接变量只是格式以适应 PDO。我正在运行一个 Bitnami Lampstack (5.3.16-0) 并按照文档中的说明进行操作,即在 php.ini 文件中取消对 PDO with mysql 行的注释。我想知道它是否与我的大小为 0 的 mysql.sock 文件有关。

我的 PDO 连接看起来像这样(我添加了 unix_socket 和 port 部分,因为在与此错误相关的另一个问题中提到了它们,但它们似乎没有帮助):

$dbConnection = new PDO('mysql:unix_socket=/opt/lampstack-5.3.16-0/mysql/tmp/mysql.sock;host=$dbhost;port=3306;dbname=$dbname; ', $user, $pass);

apache、mysql、httpd 等都在我的服务器上运行良好,这只有在启用 PDO 后才会出现。

最佳答案

首先,您示例中的连接字符串是单引号,因此变量替换将不起作用。如果您打算使用变量 $dbhost 的内容,请使用双引号。

其次,您不应同时指定本地套接字和主机/端口。选择一个或另一个。我从您的帖子中猜测套接字不是初衷。

试试这个:

 $dbConnection = new PDO("mysql:host=$dbhost;port=3306;dbname=$dbhost", $user, $pass);

此外,您的示例将 dbname 指向 $dbhost 变量。这是一个错字吗?

套接字都是0字节。它们只是可以读取和写入的命名管道,但它们本身没有内容。如果您想使用它,只需验证套接字是否存在。

祝你好运!

关于php - 启用 PDO 后 - 错误 2002 getaddrinfo 失败 : Name or service not known,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13466088/

25 4 0