0

这是我的 phpinfo 结果的一部分,我可以在哪里找到 pro 这个词?

PDO
PDO support enabled
PDO drivers mysql

pdo_mysql
PDO Driver for MySQL, client library version    5.0.45

奇怪的是我得到了这个错误:

SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'localhost' (10061)

除此之外,我的配置文件中没有“localhost”。

4

3 回答 3

0

我相信你需要在 localhost 上运行 mysql 服务器。
或任何其他要连接的 mysql 服务器。

使用编辑器中的搜索和替换功能,去掉代码中的所有 try .. catch 块。它将帮助您找到连接到 localhost 而不是正确的 mysql 主机的实际位置。

于 2013-11-15T16:55:10.813 回答
0

您的 PHP 和 pdo 已正确安装和配置。

我认为您没有正确设置数据库用户名和密码

MySQL 官方网站上提供的更多信息:

http://lists.mysql.com/myodbc/10475

于 2013-11-15T16:55:22.247 回答
0

最后它奏效了。以一种非常奇怪的方式,在我更改了 pdo 连接语句的属性顺序后建立了连接。

这是更改前的连接(我从http://php.net/manual/en/pdo.connections.php执行此命令):

try {
    $db = new PDO('mysql:host='.$db_host.';dbname='.$db_name.'', $db_user, $db_pass);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->exec("set names utf8");
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

然后我尝试像这样更改它的顺序:

try {
    $db = new PDO('mysql:dbname='.$db_name.';host='.$db_host.'', $db_user, $db_pass);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->exec("set names utf8");
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

现在它起作用了。我猜这个问题来自托管公司。

于 2013-11-16T11:05:08.277 回答