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
Je viens de résoudre mon problème en redémarrant mon système d'exploitation.
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.
Dans mon cas (dans Windows), j'ai installé pilote mysql .
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 ..
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.
Sur mon système (Fedora), un paquet appelé php-mysqlnd était requis. Je l'ai installé en exécutant:
dnf install php-mysqlnd