繁体   English   中英

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

[英]Symfony2 / Doctrine2 can't connect to IBM DB2 database using ibm_db2 client

我在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硬编码到发生错误的驱动程序文件中,则一切正常。 这是不希望的,因为它涉及更改供应商提供的文件。 有没有人找到在配置中正确指定协议的方法?

最终,您将使用ibm_db2遇到许可问题,如此处所述 PDO或ODBC将成为您唯一的免费选择。 IBM要求DB Connect使用ibm_db2 db2_connect()东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM