我在Doctrine2上遇到了一个问题,看起来像是一个bug,但我在谷歌上找不到其他有同样问题的人。我希望这里的某个地方经历过这个问题,知道如何解决它
基本上,我正在尝试连接到DB2数据库。我更喜欢使用ibm_db2客户端,因为它应该更好、更快(比PDO_ibm或PDO_ODBC)。我已经安装了客户端并进行了测试。一切似乎都在那里工作。但当我使用条令时,我会出现以下错误:
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()内容。