这是我的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)
除此之外,我的配置文件中没有"本地主机"。
您的 PHP 和 pdo 已正确安装和配置。
我认为您没有正确设置数据库用户名和密码
更多信息可在MySQL官方网站上找到:
http://lists.mysql.com/myodbc/10475
我相信你需要在本地主机上运行mysql服务器。
或任何其他要连接的 mysql 服务器。
在编辑器中使用搜索和替换功能,并摆脱代码中的所有 try.. catch 块。它将帮助您找到连接到本地主机的实际位置,而不是正确的 mysql 主机。
终于成功了。以一种非常奇怪的方式,在我更改了 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();
}
现在它奏效了。我想这个问题来自托管公司。