web-dev-qa-db-fra.com

Symfony 3 - Une exception s'est produite dans le pilote: impossible de trouver le pilote.

Je viens d'essayer symfony 3 et je suis sur l'insertion de données dans une base de données à l'aide de Doctrine ORM . Lorsque j'essaie d'exécuter ma requête 

$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();

mais il retourne une exception:

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

Parameters.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%'

Je vérifie également si l'extension est activée et chargée via php -m et phpinfo (). Il dit que PDO & PDO_Mysql est activé.

Ajoutez ensuite ces deux lignes dans le fichier php.ini:

extension=pdo.so
extension=pdo_mysql.so

mais j'ai toujours la même exception PDO.

Mon système d'exploitation est Ubuntu 17.1

2
Ricardo Raz

Je viens de résoudre mon problème en redémarrant mon système d'exploitation. 

0
Ricardo Raz

Je crois que le paquet php-mysql manque dans votre système. Installez le paquet en utilisant la commande

Sudo apt-get install php-mysql

J'espère que cela résoudra votre problème.

Je pense que vous devez également redémarrer Apache afin de résoudre le problème. Après avoir installé php-mysql, utilisez la commande suivante pour redémarrer Apache

 Sudo service Apache2 restart.
6
Nightfox

Dans mon cas (dans Windows), j'ai installé pilote mysql .

0
MRustamzade

Pour moi, j'ai ajouté ces 2 lignes dans /etc/php/5.6/cli/php.ini

comme ils étaient déjà présents dans /usr/lib/php/5.6/php.ini-development

extension = pdo.so

extension = pdo_mysql.so

sudo a-t-il redémarré Apache2

Je pourrais alors vider l'entité dans la base de données.

Espérons que cela fonctionne pour quelqu'un d'autre à l'avenir ..

0
Vikas Khatana

Tout d’abord, vous devez changer le numéro de port MySQL de null à 3306. Ca y est .. Je pense que vous n'avez pas de mot de passe MySQL, c'est pourquoi vous n'avez rien écrit.

Bonne journée.

0
user7271330

Sur mon système (Fedora), un paquet appelé php-mysqlnd était requis. Je l'ai installé en exécutant: 

dnf install php-mysqlnd
0
Harry Wagstaff