[英]Symfony 3 - An exception occurred in driver: could not find driver
我只是尝试symfony 3,我使用Doctrine ORM将数据插入数据库。 当我尝试运行我的查询时
$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();
但它返回一个例外:
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%'
我还检查扩展是否已启用并通过php -m和phpinfo()加载。 它说PDO和PDO_Mysql已启用。
然后在php.ini中添加这两行:
extension=pdo.so
extension=pdo_mysql.so
但我仍然有相同的PDO例外。
我的操作系统是Ubuntu 17.1
我相信你的系统中缺少php-mysql包。 使用该命令安装软件包
sudo apt-get install php-mysql
我希望这能解决你的问题。
我认为您还需要重启Apache才能解决问题。 安装php-mysql后,使用以下命令重启Apache
sudo service apache2 restart.
首先,您必须将MySQL端口号从null
更改为3306
。 而已。 我认为你没有MySQL密码,这就是为什么你没有写任何东西。
祝你有美好的一天。
在我的系统(Fedora)上,需要一个名为php-mysqlnd的软件包。 我通过运行安装它:
dnf install php-mysqlnd
在我的情况下(在Windows中)我已经安装了mysql驱动程序 。
对我来说,我在/etc/php/5.6/cli/php.ini
添加了这两行,因为它们已经出现在
/usr/lib/php/5.6/php.ini-development
extension=pdo.so
extension=pdo_mysql.so
然后做了:
sudo service apache2 restart
然后我可以将实体刷新到数据库。
希望将来能为所有人服务。
在WAMPServer和可能的其他配置中 ,您的命令行PHP可能有一个单独的php.ini
。 确保在右侧.ini中启用模块(理想情况下都是ini)
我刚刚重新启动操作系统解决了我的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.