【问题标题】:Doctrine2 entity creation error : "Could not find driver"Doctrine2 实体创建错误:“找不到驱动程序”
【发布时间】:2015-02-04 08:28:22
【问题描述】:

我正在学习如何在 Symfony 中使用 Doctrine。
我正在使用 Ubuntu 14.04。我的 parameters.yml 配置了 pdo_pgsql。

我的问题是,当我为实体提供快捷方式名称时,出现 3 个错误“找不到驱动程序”。

这是我的终端的两张错误图片。
http://hpics.li/d6824c3
http://hpics.li/3ddd6c7
Heberger image http://img4.hostingpics.net/thumbs/mini_318085help1.png
我在网上搜索了答案。事实上,当文件 php.ini 丢失时应该会出现问题,但php -i |grep php\.ini 显示文件存在。
Heberger image http://img4.hostingpics.net/thumbs/mini_233589help2.png

这是命令php -i | grep pdo的结果 http://hpics.li/4589850 Heberger image http://img4.hostingpics.net/thumbs/mini_996595help3.png

您可以帮我解决这个“找不到驱动程序”的问题。

谢谢。

【问题讨论】:

    标签: php symfony doctrine-orm entity


    【解决方案1】:

    这意味着您的系统中缺少安装的 pdo 驱动程序。例如,根据您在 parameters.yml 中配置的数据库引擎,它可能是 pdo_pgsql

    检查php -i | grep pdo 命令的内容 - 您应该会看到您的扩展程序已安装。

    如果没有,您只需使用安装它(例如postgresql):

    sudo apt-get install php5-pgsql
    

    php -i | grep pdo 应该显示如下内容:

    /etc/php5/cli/conf.d/10-pdo.ini,
    /etc/php5/cli/conf.d/20-pdo_pgsql.ini,
    pdo_pgsql
    

    【讨论】:

    • 我使用的是 Ubuntu 14.04。我的parameters.yml 配置了pdo_pgsql。我将编辑我的问题以显示命令 php -i | grep pdo 的内容。
    • 所以你错过了php5-pgsql 扩展。我调整了答案以适合postgresql
    • 确实我缺少 php5-pgsql。我会在我回家时安装它(代理阻止下载)。谢谢@Tomasz
    【解决方案2】:

    您需要在 php.ini 文件中启用 PDO 和 PDO_MYSQL 扩展。

    在 Windows 服务器上,您可以在 php.ini 中添加以下行

    extension=php_pdo.dll
    extension=php_pdo_mysql.dll
    

    在 Linux 服务器上,您可以使用以下选项编译 php

    --with-pdo-mysql 
    

    在您的 php.ini 中,添加以下行

    extension=pdo.so
    extension=pdo_mysql.so
    

    【讨论】:

    • 我应该将它们添加到php.ini 文件的末尾吗? (我使用 pgsql,所以我认为它是 extension=pdo_pgsql.so
    • 通过删除“;”取消注释 php.ini 中的以下内容;extension=php_pgsql.dll
    • extension=pdo_pgsql 在我的php.ini 中找不到。正如@Tomasz 建议的那样,我必须安装 pgsql。
    猜你喜欢
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 2020-09-23
    • 2021-05-24
    • 2017-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多