Исключение PDO: в драйвере возникла исключительная ситуация: не удалось найти драйвер для mysql - PullRequest
0 голосов
/ 05 января 2020

Я знаю, что это часто задаваемый вопрос. Но я просмотрел и прочитал все это. К сожалению, я не смог найти правильный ответ на мою проблему. Я использую 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, таблицу для продукта. До этого момента я полагаю, что соединение с моей базой данных работает отлично. Затем в 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());
    }
}

Это выдает ошибку: Драйвер не найден, как на картинке, я проверил URL базы данных в env, он работает без проблем (я создал базу данных и таблица продуктов через него). Я проверил phpinfo и pdo_ mysql включен без проблем. Я проверил соединение с базой данных с фиксацией, следуя инструкции здесь https://symfony.com/doc/current/testing/database.html, и прошел без проблем. Можете ли вы помочь мне? см. Изображение ошибки

1 Ответ

0 голосов
/ 05 января 2020

Благодаря guillaumesmo я использовал symfony php -м. Здесь я увидел ошибку не удалось загрузить библиотеку pdo_ mysql. Я вспомнил, что в моей системе установлено 2 PHP версии. Я обновил PHP версию до PHP 7.4.1 и удалил более старые версии. Работает отлично. Я не понимал, почему я мог подключиться и обновить свою базу данных через Terminal and Fixature, но не с EntityManagerInterface. Во всяком случае, я сейчас работаю

...