web-dev-qa-db-ger.com

Symfony 3 - Im Treiber ist eine Ausnahme aufgetreten: Der Treiber wurde nicht gefunden

Ich probiere einfach Symfony 3 aus und füge Daten mit Doctrine ORM ..__ in die Datenbank ein. Wenn ich versuche, meine Abfrage auszuführen 

$customer = new Customer();
$customer->setAddress('Some Address');
$customer->setName('Customer 1');

$order->setQuantity('100');
$order->setDate(date('Y-m-d'));
$order->setCustomer($customer);

$em = $this->getDoctrine()->getManager();
$em->persist($customer);
$em->persist($order);
$em->flush();

aber es gibt eine Ausnahme zurück:

Uncaught PHP Exception Doctrine\DBAL\Exception\DriverException: "An exception occurred in driver: could not find driver" at /home/hei/Sites/practice/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php line 121

Parameter.yml:

parameters:
    database_Host: 127.0.0.1
    database_port: null
    database_name: practice
    database_user: root
    database_password: null

Config.yml

doctrine:
    dbal:
        driver: pdo_mysql
        Host: '%database_Host%'
        port: '%database_port%'
        dbname: '%database_name%'
        user: '%database_user%'
        password: '%database_password%'

Ich überprüfe auch, ob die Erweiterung über php -m und phpinfo () aktiviert und geladen ist. Es sagt, dass PDO & PDO_Mysql aktiviert ist.

Fügen Sie dann diese beiden Zeilen in der php.ini hinzu:

extension=pdo.so
extension=pdo_mysql.so

aber ich habe immer noch die gleiche PDO Exception.

Mein Betriebssystem ist Ubuntu 17.1

2
Ricardo Raz

Ich habe mein Problem gelöst, indem ich einfach mein Betriebssystem neu gestartet habe. 

0
Ricardo Raz

Ich glaube, dass das PHP-MySQL-Paket in Ihrem System fehlt. Installieren Sie das Paket mit dem Befehl

Sudo apt-get install php-mysql

Ich hoffe, das wird dein Problem beheben.

Ich denke, Sie müssen Apache auch neu starten, um das Problem zu beheben. Nach der Installation von php-mysql können Sie Apache mit dem folgenden Befehl neu starten

 Sudo service Apache2 restart.
6
Nightfox

In meinem Fall (unter Windows) habe ich mysql driver installiert.

0
MRustamzade

Für mich habe ich diese beiden Zeilen in /etc/php/5.6/cli/php.ini hinzugefügt

da sie bereits in /usr/lib/php/5.6/php.ini-development vorhanden waren

erweiterung = pdo.so

extension = pdo_mysql.so

dann wurde Sudo-Dienst Apache2 neu gestartet

Ich könnte dann die Entität in die Datenbank leeren.

Hoffe, das funktioniert in Zukunft für alle anderen.

0
Vikas Khatana

Zunächst müssen Sie die MySQL-Portnummer von null in 3306 ändern. Das ist es ... Ich glaube, Sie haben kein MySQL-Passwort, deshalb haben Sie nichts geschrieben.

Haben Sie einen guten Tag.

0
user7271330

Auf meinem System (Fedora) war ein Paket namens php-mysqlnd erforderlich. Ich habe es installiert, indem ich Folgendes ausgeführt habe: 

dnf install php-mysqlnd
0
Harry Wagstaff