Es scheint, dass Sie einen einfachen Tippfehler in Ihrem Code haben. Sie definiert Ihre DSN mit dem String msql:dbhost=localhost...
Aber sollten Sie mysql:dbhost=localhost...
http://php.net/manual/en/ref.pdo-mysql.connection.php auf dem MySQL-DSN-Format als Referenz-Dokumentation finden Sie verwenden.
Sie haben php-pdo
installiert, aber Sie benötigen möglicherweise auch php-mysql
oder php-mysqlnd
(bevorzugen Sie Letzteres).
Sie können überprüfen, indem Sie php -i | less
ausführen, um einen ausführlichen Bericht über alle derzeit installierten Erweiterungen zu geben. Achten Sie auf den „PDO“ Abschnitt, und bestätigt, dass die MySQL-Treiber unter den Fahrern sind installiert:
PDO
PDO support => enabled
PDO drivers => sqlite, mysql, sqlite2
Ist dies der Fall, sollte es durch einen „pdo_mysql“ Abschnitt folgen. Mine sieht wie folgt aus:
pdo_mysql
PDO Driver for MySQL => enabled
Client API version => mysqlnd 5.0.8-dev - 20102224 - $Id: 731e5b87ba42146a687c29995d2dfd8b4e40b325 $
Directive => Local Value => Master Value
pdo_mysql.default_socket => /var/run/mysqld/mysqld.sock
Wenn Sie nicht über die pdo_mysql
Abschnitt haben, sollten Sie die entsprechenden yum-Paket für es installieren:
sudo yum install php-mysqlnd
Also, wenn PHP keinen Treiber finden können - es bedeutet, dass es ist niemand. – zerkms