【问题标题】:Symfony bdal Excepiton: could not find driverSymfony dbal 异常:找不到驱动程序
【发布时间】:2021-12-03 16:17:14
【问题描述】:

在命令行我得到连接和所需的实体,这里没有驱动程序错误:

php bin/console dbal:run-sql 'select * from ourtest'

但在网络上我得到错误:

        $this->connection->fetchAll('SELECT * FROM ourtest');

处理 “App\Application\Command\DocumentUpload\DocumentUploadCommand”失败: 驱动程序发生异常:找不到驱动程序

我试过了

php -m 显示 PDO、pdo_mysql、mysqli、mysqlnd 等

来自 .env 的连接 url:

DATABASE_URL=mysql://xxx:xxx@mysql-db:3306/db_test_01?serverVersion=8.0

doctrine.yaml:

doctrine:
    dbal:
        dbname:               db_test_01
        host:                 mysql-db
        port:                 3306
        user:                 xxx
        password:             xxx
        driver:               pdo_mysql
        version:              8.0

【问题讨论】:

  • 哪个版本的 symfony 和学说?

标签: symfony database-connection mysql-connector dbal


【解决方案1】:

我的猜测是命令行和您的网络服务器使用不同的 PHP 配置或完全不同的安装。

查找方法如下:在您的网络服务器上的文件中调用phpinfo()(不要在生产环境中这样做,因为它会将敏感数据暴露给有权访问此文件的任何人!)。在浏览器中打开该文件并检查 PHP 安装的位置。

在命令行,你可以运行which php来查看PHP二进制文件的位置。

比较两者,看看你是否在同一个二进制文件上运行。如果确实相同,那么您应该检查 Web 服务器使用了哪个 .ini 文件。在该.ini 文件中,您应该找到mysql 扩展名(pdo_mysql.so),并且不应将其注释掉(前面没有;)。

【讨论】:

    猜你喜欢
    • 2019-07-01
    • 2021-05-02
    • 2021-06-12
    • 2019-08-06
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    相关资源
    最近更新 更多