it-swarm.com.de

PDOException "Treiber konnte nicht gefunden werden" in PHP

Ich habe Lampp auf meinem Linux-System installiert und lerne symfony2, während ich versuche, das Schema mit dem Befehl symfony2 zu erstellen 

php app/console doctrine:schema:create

Ich erhalte folgende Fehlermeldung: -

PDOException “could not find driver”

Ich kommentiere auch diese Zeile extension=php_pdo_mysql.dll in der php.ini-Datei

Ich habe versucht, mein Problem zu suchen und zu googeln, konnte es jedoch nicht lösen. Wenn ich php -m Befehl ausführt, erhalte ich folgendes Ergebnis: -

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/mysql.so' - /usr/lib/php5/20090626+lfs/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/mysqli.so' - /usr/lib/php5/20090626+lfs/mysqli.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/pdo_mysql.so' - /usr/lib/php5/20090626+lfs/pdo_mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
date
dba
dom
ereg
exif
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
mbstring
mhash
openssl
pcntl
pcre
PDO
----
----

Gibt es eine Möglichkeit, dieses Problem zu entfernen?

12
ScoRpion

Ich hoffe, Sie führen Ihr Projekt in localhost durch. Vergewissern Sie sich, dass in Ihrem Projektordner app/config eine Datei mit dem Namen parameters.ini vorhanden ist, und stellen Sie sicher, dass die Verbindungskonfiguration für die MySQL-Datenbank korrekt ist. Wenn Sie mysql verwenden, sehen Sie unter database_driver=pdo_mysql den Treiber. 

Unten ist ein Beispiel.

database_driver   = pdo_mysql
    database_Host     = localhost
    database_port     =
    database_name     = databasename
    database_user     = msqlusername
    database_password = mysqlpassword//if not make blank

    mailer_transport  = smtp
    mailer_Host       = localhost
    mailer_user       =
    mailer_password   =

    locale            = en

    secret            = ThisTokenIsNotSoSecretChangeIt

Ich hoffe es hilft dir.

7
Asish AP

Schreiben Sie in Ubuntu in die Konsole

Sudo apt-get install php5-Gd php5-mysql

und es wird funktionieren

10
ioses

Sie benötigen ein Modul mit dem Namen pdo_mysql

Suchen Sie in der Ausgabe von phpinfo() Folgendes:

pdo_mysql => PDO-Treiber für MySQL, Client-Bibliotheksversion => 5.1.44

um pdo_mysql zu installieren, müssen Sie Folgendes tun:

 pecl install pdo
 pecl install pdo_mysql

und fügen Sie dann der php.ini-Datei Folgendes hinzu:

extension=pdo.so
extension=pdo_mysql.so
5
Jaspreet Chahal

Auf meinem Server PHP 5.6 und PHP 7 sind zwei Versionen von PHP installiert

Wenn ich den Befehl php app/console doctrine:schema:update starte, habe ich den Fehler: [PDOException] could not find driver

Ich behebe diesen Fehler durch Angeben der PHP -Version:

php5.6 app/console doctrine:schema:update
1

brew install php70-pdo-pgsql Falls Sie php7 auf einem Mac mit brew installiert haben, ändern Sie die PHP-Version entsprechend der Installation.

1
Eralp Karaduman

Anscheinend fehlen Ihrer Installation die .so-Dateien, die zur Implementierung der MySQL-Verbindung erforderlich sind. Wenn Sie ein Paketverwaltungssystem für die Installation von PHP verwenden, stellen Sie sicher, dass Sie alle erforderlichen Submodule installiert haben (in diesem Fall denke ich, dass Sie mysql-dev und die verschiedenen PDOs PHP benötigen Module), obwohl solche Abhängigkeiten vom Paketmanager für Sie gelöst werden sollten. 

Wenn Sie keinen Paket-Manager durchlaufen haben, müssen Sie die erforderlichen .so-Dateien aus dem Quellcode kompilieren. 

0
GordonM

wenn Sie XAMPP verwenden, dann in Zeile 897 der php.ini-Datei (abhängig von der Version),

;extension=php_pdo_pgsql.dll 

unkommentieren, dann sieht es aus wie unten

extension=php_pdo_pgsql.dll 

in der Dateizeile 897 der php.ini starten Sie XAMPP neu.

0
Mohammad Fareed