使用pdo_mysql属性时接收PHP致命错误

时间:2012-11-26 06:38:12

标签: php mysql ssl pdo

我正在尝试将SSL与PDO和PDO MySQL一起使用,但是收到了“PHP致命错误:未定义的类常量'MYSQL_ATTR_SSL_CA'”:

    $this->db = new PDO(
        "mysql:host=".$this->hostname.";dbname=".$this->database, 
        $this->username, 
        $this->password, 
        array(
            PDO::ATTR_PERSISTENT => true, 
            PDO::MYSQL_ATTR_SSL_CA => "path/to/mysql-ssl-ca-cert.pem" 
        )
    );

我确保使用phpinfo()安装了pdo_mysql,并且在没有SSL的情况下使用代码没有任何问题。我使用PHP 5.3.6-13在Ubuntu 3.9上。我尝试过使用其他MYSQL_ATTR_ ..并收到类似的错误。对可能发生的事情的任何想法?

2 个答案:

答案 0 :(得分:3)

PDO::MYSQL_ATTR_SSL_CA被定义为5.3.7以后的常数。

您可以在文档中查看:http://php.net/manual/en/ref.pdo-mysql.php#pdo.constants.mysql-attr-ssl-ca

答案 1 :(得分:2)

在我的情况下,我在使用Drush(Drupal命令行工具,版本8.1.2)和Drupal(版本7.43)时遇到此错误。问题是我在CLI中使用PHP7,切换到PHP5.6解决了这个问题。