0

我的连接参数是正确的,因为我使用 mysqli 成功连接。但是自从切换到 PDO 后,我遇到了麻烦,并且Unknown MySQL server host总是抛出异常。

我的相关代码是这样的:

class UpdateStock{
     public function __construct(){
        try{
           $connection = new PDO('mysql:host=localhost:8889;dbname=mydatabasename', 'root', 'root');   
           $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

           echo 'connection succedded'; 

        }catch(PDOException $e){
         echo $e;//Always got exception
        }
    }

}//End of class

$updateStock = new UpdateStock;

我的 php.ini 文件为 mysql 启用了 PDO 选项: extension=pdo_mysql.so

MAMP 运行良好,因此 PDO 无法连接似乎有什么问题。

4

1 回答 1

0

我检查了 phpinfo 以查看 MySQL 服务器正在侦听的端口,我发现它为空值(未指定端口):

在此处输入图像描述

所以我简单地从主机值中删除了端口以使其工作:

   $connection = new PDO('mysql:host=localhost;dbname=mydatabasename', 'root', 'root');   

mysqli但是使用了端口3306。我以为 PDO 和 mysqli 将使用相同的端口,但似乎我错了:)

于 2013-03-15T16:56:14.033 回答