PDO异常:驱动程序中发生异常:找不到mysql驱动程序

时间:2020-01-05 18:16:13

标签: symfony pdo driver

我知道这是常见问题。但我查看并阅读了所有内容。不幸的是,我找不到解决我问题的正确答案。我正在使用symfony。我遵循了https://symfony.com/doc/current/doctrine.html上的说明和教程。所有步骤都进行得很顺利。我在终端上运行以下命令没有任何问题:

composer require symfony/orm-pack
composer require --dev symfony/maker-bundle
php bin/console doctrine:database:create
php bin/console make:entity
php bin/console make:migration
php bin/console doctrine:migrations:migrate
php bin/console make:controller ProductController

使用上述命令,我可以创建一个数据库ProductEntity,一个用于Product的表 至此,我认为与数据库的连接运行良好。 然后在ProductController中,我在交响乐网站上使用了代码:

// src/Controller/ProductController.php
namespace App\Controller;

// ...
use App\Entity\Product;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Response;

class ProductController extends AbstractController
{
    /**
     * @Route("/product", name="create_product")
     */
    public function createProduct(): Response
    {
        // you can fetch the EntityManager via $this->getDoctrine()
        // or you can add an argument to the action: createProduct(EntityManagerInterface $entityManager)
        $entityManager = $this->getDoctrine()->getManager();

        $product = new Product();
        $product->setName('Keyboard');
        $product->setPrice(1999);
        $product->setDescription('Ergonomic and stylish!');

        // tell Doctrine you want to (eventually) save the Product (no queries yet)
        $entityManager->persist($product);

        // actually executes the queries (i.e. the INSERT query)
        $entityManager->flush();

        return new Response('Saved new product with id '.$product->getId());
    }
}

它给出错误:找不到图片中所示的驱动程序 我已经在env中检查了数据库url,它可以正常工作(我通过它创建了一个数据库和产品表)。我检查了phpinfo并启用了pdo_mysql,没有问题。 我已按照https://symfony.com/doc/current/testing/database.html的说明测试了具有固定装置的数据库连接,并且成功完成了而没有任何问题 你能帮我么? see the Picture of Error

1 个答案:

答案 0 :(得分:0)

多亏了guillaumesmo,我使用了symfony php -m。在这里,我看到了无法加载pdo_mysql库的错误。我记得,我的系统上安装了2个PHP版本。 我将PHP版本更新为PHP 7.4.1,并删除了旧版本。完美运作。我不明白为什么我可以通过Terminal和Fixature而不是通过EntityManagerInterface连接和更新数据库。无论如何我现在工作