Symfony2 / Doctrine2 не может подключиться к базе данных IBM DB2 с помощью клиента ibm_db2 - PullRequest
2 голосов
/ 17 января 2012

У меня проблема с 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 голосов
/ 16 декабря 2014

В конце концов вы столкнетесь с проблемами лицензирования, используя ibm_db2 , как указано здесь . PDO или ODBC будут вашими единственными бесплатными способами. IBM требует, чтобы DB Connect использовал ibm_db2 db2_connect ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...