Symfony2 / Doctrine2无法使用ibm_db2客户端连接到IBM DB2数据库

时间:2012-01-17 17:17:13

标签: php symfony db2 doctrine-orm

我遇到了Doctrine2的问题,这似乎是一个错误,但我在Google上找不到其他同样问题的人。我希望这里的某个地方遇到过这个问题并知道如何解决它。

基本上我正在尝试连接到DB2数据库。我更喜欢使用ibm_db2客户端,因为它应该更好更快(比PDO_IBM或PDO_ODBC)。我已经安装了客户端并进行了测试。一切似乎都在那里工作。但是当我使用Doctrine时,我收到以下错误:

Notice: Undefined index: protocol in
...[my folders].../vendor/doctrine-dbal/lib/Doctrine/DBAL/Driver/
IBMDB2/DB2Driver.php line 54

因此,在该文件中,它正在寻找似乎没有默认值的$params['protocol']。所以在config.yml中我尝试了这个:

# Doctrine Configuration
doctrine:
    dbal:
        default_connection:   default
        driver:   %database_driver%
        host:     %database_host%
        port:     %database_port%
        dbname:   %database_name%
        user:     %database_user%
        password: %database_password%
        protocol: TCPIP

但是,当我这样做时,它抱怨protocol是一个未定义的配置选项(并查看DependencyInjection的内容,它不会出现在那里。)

但是:如果我将TCPIP硬编码到发生错误的驱动程序文件中......一切正常。这是不合需要的,因为它涉及更改供应商提供的文件。有没有人找到在配置中正确指定协议的方法?

1 个答案:

答案 0 :(得分:0)

最终,您将使用ibm_db2 as noted here遇到许可问题。 PDO或ODBC将成为您唯一的免费方式。 IBM要求DB Connect使用ibm_db2 db2_connect()东西。