我正在尝试将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_ ..并收到类似的错误。对可能发生的事情的任何想法?
答案 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解决了这个问题。