PHP PDO-找不到驱动程序,但驱动程序已安装并启用

PHP PDO-找不到驱动程序,但驱动程序已安装并启用,php,pdo,Php,Pdo,我在本地Ubuntu 16机器上运行PHP7.2(apache)。直到昨天我尝试连接到我的GSQL数据库时,我所有的应用程序都在工作。我已经成功地连接并发送了一整天的INSERT语句,直到出现错误“找不到驱动程序”。所以有些事情似乎已经改变了 这是我的phpinfo() 这是我用来连接的代码。唯一改变的是,我现在正在尝试连接SSL选项。我将证书文件存储在本地文档根目录上方的目录中。我尝试了使用和不使用SSL选项,但仍然得到相同的错误 //Connect to the DB $this->

我在本地Ubuntu 16机器上运行PHP7.2(apache)。直到昨天我尝试连接到我的GSQL数据库时,我所有的应用程序都在工作。我已经成功地连接并发送了一整天的INSERT语句,直到出现错误“找不到驱动程序”。所以有些事情似乎已经改变了

这是我的phpinfo()

这是我用来连接的代码。唯一改变的是,我现在正在尝试连接SSL选项。我将证书文件存储在本地文档根目录上方的目录中。我尝试了使用和不使用SSL选项,但仍然得到相同的错误

//Connect to the DB
$this->connection = new PDO("
    mysql:host=$this->servername;
    dbname=$this->database",$this->u,$this->p,[
        PDO::MYSQL_ATTR_SSL_KEY    => $this->ck,
        PDO::MYSQL_ATTR_SSL_CERT   => $this->cc,
        PDO::MYSQL_ATTR_SSL_CA     => $this->sc,
        PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false
    ]
);
$this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

我从谷歌和stack搜索结果中尝试了各种不同的解决方案,但都无济于事。

非常感谢@KIKO软件在这方面的帮助,并指出了我的错误。非常感谢你

错误是将DSN断开到多条线路上

//Connect to the DB
$this->connection = new PDO("
  mysql:host=$this->servername;dbname=$this->database",$this->u,$this->p,[
    PDO::MYSQL_ATTR_SSL_KEY    => $this->ck,
    PDO::MYSQL_ATTR_SSL_CERT   => $this->cc,
    PDO::MYSQL_ATTR_SSL_CA     => $this->sc,
    PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false
  ]  
);
$this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

是否有更完整的错误消息…?您提到了一个,它似乎是存在的,但您在连接中使用了MySQL,并且在
phpinfo()
图像中也显示了这一点。是哪一个?完全错误消息如所述-找不到驱动程序。GSQL是谷歌云SSL。@KIKOSoftware我已经回答了你的问题,你还有什么要补充的吗?对不起,我没有看到你之前的评论。这个@帮助我注意到你的第二个评论。首先:我没有使用谷歌云SSL及其相关技术的经验。不过我知道你怎么能做到。只需使用:
print_r(PDO::getAvailableDrivers())。MySQL应该在那里。很高兴你看到它最终帮助了你。