2012-11-26 53 views
2

我想使用與PDO和PDO MySQL的SSL但接受「PHP致命錯誤:未定義類常量‘MYSQL_ATTR_SSL_CA’」爲:接收PHP致命錯誤使用PDO_MYSQL當屬性

$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

這將幫助您http://stackoverflow.com/questions/5808574/fatal-error-undefined-class-constant-invalid – Chella

+0

感謝您指出。我意識到這個常數在班上沒有定義,應該是。我只是不清楚爲什麼這個記錄的常量不存在,因爲它似乎已經根據phpinfo()正確安裝了php_mysql。 –

回答

2

在我的情況與Drush(Drupal的命令行工具,版本8.1.2)和Drupal(版本7.43)的工作,而我得到這個錯誤。問題是我在CLI中使用PHP7,切換到PHP5.6解決了這個問題。

+0

嗨,彼得。我正在使用WAMP和WSL,我的PHP是5.6.16,並且在Drupal 7.44站點和Druah 8.1.2上遇到同樣的錯誤...有什麼建議嗎? – JohnDoea

+0

嘿,你如何應對這種轉變? – podarok

+1

如果您使用的是PHP 7.0並且出現此錯誤,請確保您已安裝'php7.0-mysql'和'php7.0-pdo'(如果在其他操作系統上使用Debian/Ubuntu不同的軟件包),以及確保你重新啓動你的網絡服務器或PHP-FPM。 – geerlingguy