Intereting Posts
Как суммировать новую и последнюю вставленную запись с тем же идентификатором и вставить результат в новую запись Опубликовать на стене someones с помощью API Facebook API Выпадающее окно php country by maxmind geoip Как перенаправить страницу ошибки и выполнить маршруты в Zend Framework 1.x Как преобразовать XML-отчет PHP Sniffer XML в HTML? Mod Rewrite и использование PHP GET для URL-адресов, когда не соблюдают правила Как запустить PHP внутри CSS PhantomJS долго висит, говоря «Фаза очистки асинхронных сеансов, начиная СЕЙЧАС» Как найти файл php.ini, используемый командной строкой? Как хранить последовательные данные в mysql Несколько запросов, использующих orWhere, в полях модели и связанных моделей цикл foreach и ссылка & $ value Как изменять значения отображаются в панели задач Phabricator в режиме рабочего процесса отставания SQLSTATE Невозможно подключиться к серверу MySQL на ошибке «127.0.0.1» (61) Laravel 4.1 Удалите запись и изменение файлов в php.ini

Успешно подключиться к DB2, используя PHP НЕ используя ODBC?

Необходимо знать, 1) кто-либо успешно сделал соединение и 2) запросил удаленный сервер DB2 с помощью PHP, и 3) если да, то как?

Я установил расширение PECL для db2

[db2] extension=ibm_db2.so

но не может понять, как его использовать. Все примеры, которые я нахожу, используют стиль ODBC dsn, я не хочу использовать ODBC.

ОБНОВЛЕНИЕ: В соответствии с документацией здесь ( http://www.redbooks.ibm.com/abstracts/sg247218.html ) номинально возможно использовать драйвер ibm_db2 (без ODBC), но описанная в нем методология является либо неполной, либо устаревшей.

Используя PHP, у вас есть только один вариант: ODBC.

Ниже приведены пошаговые инструкции по подключению к DB2 для i (на IBM i) на Ubuntu:

Загрузите бесплатный файл iSeriesAccess-6.1.0-1.2.i386.rpm из IBM (вам нужно будет создать бесплатную учетную запись для его получения)

Преобразуйте RPM-файл в нечто, что Ubuntu понимает: sudo alien iSeriesAccess-6.1.0-1.2.i386.rpm

Установите полученный .deb: sudo dpkg -i iseriesaccess_6.1.0-2.2_i386.deb

Скопируйте установленные библиотеки iSeries туда, где их ожидает Ubuntu: sudo cp /opt/ibm/iSeriesAccess/lib/* /usr/lib

Отредактируйте файл /etc/odbc.ini, чтобы он содержал:

 [primary] Description = primary Driver = iSeries Access ODBC Driver System = IP_ADDRESS UserID = USERNAME Password = PASSWORD Naming = 0 DefaultLibraries = QGPL Database = XXXXXXXXXX ConnectionType = 0 CommitMode = 2 ExtendedDynamic = 0 DefaultPkgLibrary = QGPL DefaultPackage = A/DEFAULT(IBM),2,0,1,0,512 AllowDataCompression = 1 LibraryView = 0 AllowUnsupportedChar = 0 ForceTranslation = 0 Trace = 0 

Измените файл /etc/odbcinst.ini, чтобы он содержал:

 [iSeries Access ODBC Driver] Description = iSeries Access for Linux ODBC Driver Driver = /usr/lib/libcwbodbc.so Setup = /usr/lib/libcwbodbcs.so NOTE1 = If using unixODBC 2.2.11 or later and you want the 32 and 64-bit ODBC drivers to share DSN's, NOTE2 = the following Driver64/Setup64 keywords will provide that support. Driver64 = /usr/lib/lib64/libcwbodbc.so Setup64 = /usr/lib/lib64/libcwbodbcs.so Threading = 2 DontDLClose = 1 UsageCount = 1 

А затем создать соединение с PDO:

 $pdo = new PDO("odbc:DRIVER={iSeries Access ODBC Driver};SYSTEM=$server;PROTOCOL=TCPIP", $username, $password); 

Для DB2 LUW вам необходимо установить, как минимум, соответствующую версию драйвера DB2 Data Server для ODBC и CLI. Он предоставляет необходимые библиотеки, используемые модулем PHP.

Вы можете использовать расширение pecl ibm_db2. Он использует DB2 Call Level Interface (DB2 CLI), поэтому в вашей системе должен быть установлен IBM db2 CLI.

Это страница PHP DOC:

http://php.net/manual/pt_BR/intro.ibm-db2.php