Symfony 3 - 驱动程序中发生异常:找不到驱动程序



我只是尝试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 DoctrineDBALExceptionDriverException: "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

参数.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.
对我来说,

我在/etc/php/5.6/cli/php.ini中添加了这 2 行,因为它们已经存在于

/usr/lib/php/

5.6/php.ini-development

extension=pdo.so
extension=pdo_mysql.so

然后做了:

sudo service apache2 restart

然后我可以将实体刷新到数据库。

希望这在未来对其他人有用。

在我的系统(Fedora)上,需要一个名为php-mysqlnd的软件包。我通过运行以下命令安装了它:

dnf install php-mysqlnd

首先,您必须将MySQL端口号从null更改为3306。就是这样。我认为您没有MySQL密码,这就是您没有编写任何东西的原因。

祝你今天开心。

就我而言(在Windows中),我已经安装了mysql驱动程序。

在 WAMPServer 和可能的其他配置中,您的命令行 PHP 可能会有一个单独的php.ini。确保在正确的.ini启用模块(理想情况下两个 ini)

相关内容

  • 没有找到相关文章

最新更新