powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / как соединить PHP с DB2
22 сообщений из 22, страница 1 из 1
как соединить PHP с DB2
    #33854997
resu-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть DB2 сервер (w2k) и Linux с Apache с PHP 4.x.
я подключил модуль ibm_db2 к PHP.
phpinfo() подтверждает ето словами:

----------------------------------------------------------------
Код: plaintext
1.
2.
3.
4.
 ibm_db2 
IBM DB2, Cloudscape and Apache Derby support             enabled
Module release                                                         1.4.9
Binary data mode (ibm_db2.binmode) 		             DB2_BINARY
DB2 instance name (ibm_db2.instance_name) 	             UPSDB
----------------------------------------------------------------

однако при попытке соединения с базой через PHP:

Код: plaintext
1.
2.
3.
4.
echo "<br>CONNECTSTRING: db2_connect( $connect_str_1 , \"\", \"\" )"  ;
$db = db2_pconnect( $connect_str_1 , "", "")
    or die ($error = "Error!<br>SQLStateError: ". db2_conn_error() .
            "<br>ErrorMsg: ". db2_conn_errormsg() );


получаю следующую каку:

----------------------------------------------------------------
CONNECTSTRING: db2_connect( DRIVER={IBM DB2 ODBC DRIVER};DATABASE=UPSDB;HOSTNAME=sXXXXXXX;PORT=50000;PROTOCOL=TCPIP;UID=XXXXXXX;PWD=XXXXXXX; , "", "" )
Error!
SQLStateError:
ErrorMsg:
----------------------------------------------------------------

как ее лечить?
спасибо
...
Рейтинг: 0 / 0
как соединить PHP с DB2
    #33855944
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
конечно же, на linux с php стоит DB2 RunTime Client и конечно же нужная база в нем каталогизирована.
Все так и есть?
...
Рейтинг: 0 / 0
как соединить PHP с DB2
    #33857594
resu-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
к сожалению я не владею терминологией DB2 и не могу точно ответить на ваш вопрос, т.к. я вижу DB2 впервые и не совсем понимаю термин "каталогизирована".

я поставил ADCL (Administrative Client), a настроил его DB2-админ.
его DB2-команды с консоли (или через GUI) работают.

к сожалению я незнаю, есть ли в DB2 аналог Oracle'вского TNSPING для теста разрешения имен баз данных. (вы наверное ето имели ввиду?).

потом, PECL-модуль IBM_DB2 скомпилил с --with_IBM_DB2=/opt/IBM/db2/V8.1. модуль ibm_db2.so стоит в /usr/lib/php4/ и указан как extension в php.ini (поетому его и видно в phpinfo()).

ну а PHP-script с db2_pconnect() (или db2_connect()) выдает ошибку.

network monitoring не показывает ни одного пакета от Linux к DB2-серверу.
поетому я тоже подозреваю, что php исчет локальную базу UPSDB и не находит оной.

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

спасибо.
...
Рейтинг: 0 / 0
как соединить PHP с DB2
    #33857669
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) db2 ? ping
2) У тебя у пользователя из под которого запускается php есть переменные среды от db2, set в студию.
...
Рейтинг: 0 / 0
как соединить PHP с DB2
    #33857750
resu-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nikolay Kulikov1) db2 ? ping
db2 connect to upsdb user xxxx using xxxx
db2 ping upsdb - Ok
вы ето имели ввиду?

Nikolay Kulikov
2) У тебя у пользователя из под которого запускается php есть переменные среды от db2, set в студию.
php запускается из под apache (т.е. mod_php).
в phpinfo() есть:

_ENV[IBM_DB2]=/opt/IBM/db2/V8.1
_ENV[DB2INSTACE]=UPSDB
...
Рейтинг: 0 / 0
как соединить PHP с DB2
    #33857903
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прекрасно что из под apache. А у пользователя apache переменная LD_LIBRARY_PATH чему равна?
...
Рейтинг: 0 / 0
как соединить PHP с DB2
    #33857992
resu-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nikolay KulikovПрекрасно что из под apache. А у пользователя apache переменная LD_LIBRARY_PATH чему равна?
а какой она должна быть?
я поставил в нее (и в LD_RUN_PATH) путь: /opt/IBM/db2/V8.1/lib

не помогло!
...
Рейтинг: 0 / 0
как соединить PHP с DB2
    #33858082
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После того как вставил перепускал apache?
...
Рейтинг: 0 / 0
как соединить PHP с DB2
    #33858155
resu-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nikolay KulikovПосле того как вставил перепускал apache?
ясно дело! и проверил в phpinfo()
...
Рейтинг: 0 / 0
как соединить PHP с DB2
    #33858607
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибку в студию
...
Рейтинг: 0 / 0
как соединить PHP с DB2
    #33858635
resu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в первом посте
вылетает по:
... or die();
...
Рейтинг: 0 / 0
как соединить PHP с DB2
    #33858836
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа ученые у меня в подвале раздается стук, что это может быть?

Есть хоть какая информация в логах apache php или где там еще. Без дополнительной информации ничего тебе никто не посоветует.
...
Рейтинг: 0 / 0
как соединить PHP с DB2
    #33858947
resu-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
apache в access-log - счастлив, что отдал запрошенную стрaничку.
massages и error-log - пусты.
php - упорно в свой ЛОГ нечего не пишет.
php.ini:
error_log=/var/log/php.log

скажите, что вы хотите/подозреваете/ожидаете увидеть - и я все покажу ;)

потому что то, что сам знаю - уже посмотрел.

коротко повторю содержание предыдущий серий:
1. DB2 client - с базой может
2. ibm_db2.so - в пхп згружен
3. php script - не может (на db2_connect() вылетает or die();)
...
Рейтинг: 0 / 0
как соединить PHP с DB2
    #33860057
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделай так.

от пользователя apache
. /home/db2inst1/sqllib/db2profile

запусти aпач из этой сессии, у тебя что-то не так с библиотеками.
...
Рейтинг: 0 / 0
как соединить PHP с DB2
    #33860433
resu-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
делал - не помогает.

я вызываю ПРОФИЛь DB2админа из стартового скрипта для Апача.
вижу Environment variable в phpinfo() и все равно дальше db2_connect() - не прохожу.
...
Рейтинг: 0 / 0
как соединить PHP с DB2
    #33860980
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это что?

_ENV[DB2INSTACE]=UPSDB

Это точно что пользователь из под которого стартует DB2 называется UPSDB
/opt/IBM/db2/V8.1/instance/db2ilist в студию
...
Рейтинг: 0 / 0
как соединить PHP с DB2
    #33861803
resu-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор_ENV[DB2INSTACE]=UPSDB
- имя базы DB2.

a DB2 Client стартует от DB2admin.

$ db2ilist
db2admin

уже изменил в php.ini DB2INSTACE на db2admin и тоже не катит.
ну что ты будеш делать?

вот взялся от безнадеги за Zend Core for IBM.

а ведь хотел то по людски ...
...
Рейтинг: 0 / 0
как соединить PHP с DB2
    #33861908
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй написать
_ENV[DB2INSTACE]=DB2
...
Рейтинг: 0 / 0
как соединить PHP с DB2
    #33863487
resu-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. все могло закончится еще вчера если бы не описка с моей стороны. прошу прощения.

хочу уточнить работающее решение:
1. Zend Cor for IBM: все делает программа установки.

2. собираем сами:

2.1. install DB2 Client (создаем юзверя db2admin!!!!)

2.2. download ibm_deb2 + ./configure --with_ibm_db2=/opt/IBM/db2/V8.1; make ; make install

2.3. в php.ini:
extension ibm_db2.so
[IBM_DB2]
ibm_db2.binmode=1
ibm_db2.instanse_name=db2admin
(!!!! каким то образом ето свайзано с тем узверем DB2ADMIN. я не до конца понимаю терминалогию DB2 - знатоки пусть обьяснят, что такое "инстанция" в DB2. очевидно конкретная инсталяция)

2.4. в start-script httpd пишем в начале:
source /home/db2admin/sqllib/db2profile

2.5. phpinfo() - смотрим есть ли ibm_db2-секция

2.6.
Код: plaintext
<? db2_connect( "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=UPSDB;HOSTNAME=sXXXXXXX;PORT=50000;PROTOCOL=TCPIP;UID=XXXXXXX;PWD=XXXXXXX;" , "", "" ) or die("ERROR"); ?>

вроде все!
всем кому поможет - УДАЧИ
всем кто помогал - СПАСИБО
...
Рейтинг: 0 / 0
как соединить PHP с DB2
    #33863862
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читайте базовый курс по DB2

http://www.ibm.com/ru/software/courses/db2/learning.html
...
Рейтинг: 0 / 0
как соединить PHP с DB2
    #33865517
Desperado©
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
поставь zend core for db2, это тот же пхп только откомпилированый
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
как соединить PHP с DB2
    #36343383
ma-Gavet-2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всё гораздо проще :).
была аналогичная проблема.
centos5.4 + ibmdb2 8.1
компилируем ibm-db2.so
прописываем его в php.ini
по phpinfo его видно, но он не работает.
идем в /etc/rc.d/init.d/httpd

ищем секцию case "$1" in
start)
прописываем source /home/db2adm/sqllib/db2profile

после этого можно уже коннектится :), но с ошибкой 57017.
это клиенту нужно lang переменную.
в том же самом файле ищем
HTTPD_LANG=${HTTPD_LANG-'C'}
вот эту С надо поменять на вашу локаль. в моем случае это ru_RU.UTF-8

после этого спокойно узаем db2_xxx
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / как соединить PHP с DB2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]