powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Проблема с подключением к базе DB2 через PHP
11 сообщений из 11, страница 1 из 1
Проблема с подключением к базе DB2 через PHP
    #36879528
OlegA67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Сразу же скажу что поиском на форуме пользовался и похожие сообщения читал, но не помогло.
Начну по порядку.
Имеется сервак под Линуксом (дистрибутив SUSE)
На него установил клиента DB2 Application Developer, Apache 2.0 + PHP 5.3.
Через команды catalog прописал node и database удаленной базы (база DB2 установлена на хосте под Виндой).
С консоли и подключаюсь к этой базе и отрабатывают нужные запросы.
Но зато не получается подключиться к базе через PHP.
Библиотека ibm_db2 зарегистрирована, через phpinfo() выводится следющее

Код: plaintext
1.
2.
3.
4.
5.
IBM DB2, Cloudscape and Apache Derby support enabled 
Module release   1 . 9 . 0   
Module revision  $Revision:  297218  $  
Binary data mode (ibm_db2.binmode)  DB2_BINARY  
DB2 instance name (ibm_db2.instance_name)  no value  

Скрипт для подключения к базе следующий
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?php
$database = 'eprst';
$user = 'db2admin';
$password = '1234';

$conn = db2_connect($database, $user, $password);
if ($conn) {
    echo "Ok";
    db2_close($conn);
}
else {
   echo "Connection failed.";
   echo db2_conn_errormsg();    
	}
?> 

Напрягает то, что нет сообщения от функции db2_conn_errormsg, и я не знаю в каком направление двигаться. На выходе только сообщение Connection failed. Очень надеюсь на помощь форумчан.
...
Рейтинг: 0 / 0
Проблема с подключением к базе DB2 через PHP
    #36879904
GVF112GVF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OlegA67Добрый день.
Сразу же скажу что поиском на форуме пользовался и похожие сообщения читал, но не помогло.
Начну по порядку.
Имеется сервак под Линуксом (дистрибутив SUSE)
На него установил клиента DB2 Application Developer, Apache 2.0 + PHP 5.3.
Через команды catalog прописал node и database удаленной базы (база DB2 установлена на хосте под Виндой).
С консоли и подключаюсь к этой базе и отрабатывают нужные запросы.
Но зато не получается подключиться к базе через PHP.
Библиотека ibm_db2 зарегистрирована, через phpinfo() выводится следющее

Код: plaintext
1.
2.
3.
4.
5.
IBM DB2, Cloudscape and Apache Derby support enabled 
Module release   1 . 9 . 0   
Module revision  $Revision:  297218  $  
Binary data mode (ibm_db2.binmode)  DB2_BINARY  
DB2 instance name (ibm_db2.instance_name)  no value  

Скрипт для подключения к базе следующий
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?php
$database = 'eprst';
$user = 'db2admin';
$password = '1234';

$conn = db2_connect($database, $user, $password);
if ($conn) {
    echo "Ok";
    db2_close($conn);
}
else {
   echo "Connection failed.";
   echo db2_conn_errormsg();    
	}
?> 

Напрягает то, что нет сообщения от функции db2_conn_errormsg, и я не знаю в каком направление двигаться. На выходе только сообщение Connection failed. Очень надеюсь на помощь форумчан.

Попробуй вместо echo использовать print:

<?php
$conn = db2_connect( ... );
if (!$conn) {
print db2_conn_errormsg();
}
?>


С уважением,
Вадим Головский.
...
Рейтинг: 0 / 0
Проблема с подключением к базе DB2 через PHP
    #36879939
OlegA67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С командой
Код: plaintext
print db2_conn_errormsg();
тоже пробовал, результат тот же, ничего не выводит ((
...
Рейтинг: 0 / 0
Проблема с подключением к базе DB2 через PHP
    #36880007
jack_nsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OlegA67
Напрягает то, что нет сообщения от функции db2_conn_errormsg, и я не знаю в каком направление двигаться. На выходе только сообщение Connection failed. Очень надеюсь на помощь форумчан.

посмотри, что пишет ПХП в php_errors.log
...
Рейтинг: 0 / 0
Проблема с подключением к базе DB2 через PHP
    #36881456
OlegA67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
jack_nsk
посмотри, что пишет ПХП в php_errors.log
Файл php_errors.log на серваке не нашел.
Но есть другой файл errors.log в каталоге var\log\apache2
Но в нем ничего полезного не нашел.
Стал экспериментировать ввел неверное имя базы, смотрю в errors.log ничего, тогда в функцию db2_connect
передал лишний параметр
Код: plaintext
$conn = db2_connect($database, $user, $password, $options);
и в errors.log появилось сообщение

Код: plaintext
1.
2.
[Tue Oct  05   09 : 43 : 10   2010 ] [error] [client  10 . 18 . 84 . 8 ] PHP Notice:  Undefined variable: options in /srv/www/htdocs/test2.php on line  6 
[Tue Oct  05   09 : 43 : 10   2010 ] [error] [client  10 . 18 . 84 . 8 ] PHP Warning:  db2_connect() expects parameter  4  to be array, null given in /srv/www/htdocs/test2.php on line  6 
...
Рейтинг: 0 / 0
Проблема с подключением к базе DB2 через PHP
    #36881474
OlegA67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть еще один сервер под RHE только на нем вместо Application Developer Client установлен сервак DB2 WSE и с него все замечательно работает. Заметил разницу при выводе информации по модулю ibm_db2 командой phpinfo() на этих серваках .

На неработающем серваке
Код: plaintext
DB2 instance name (ibm_db2.instance_name)  no value 


На работающем
Код: plaintext
DB2 instance name (ibm_db2.instance_name)  db2dvlpr  

Не могу вспомнить, что делали что бы появилось значение в DB2 instance name
...
Рейтинг: 0 / 0
Проблема с подключением к базе DB2 через PHP
    #36881487
OlegA67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Удалось прописать значение для DB2 instance name
И теперь появилось сообщение об ошибке подключения к базе
Код: plaintext
[IBM][CLI Driver] SQL0332N There is no available conversion for the source code page "819" to the target code page "UNKNOWN". Reason Code "1". SQLSTATE= 57017  SQLCODE=- 332  
Ясно что идет какая-то не стыковка по кодовым страницам. Еще раз повторюсь Apache + PHP + DB2 Application Developer Client это на Линуксе а база DB2 стоит на Windows. При коннекте с консоли все проходит нормально.
Почитал на форуме что надо прописать команду db2set DB2CODEPAGE=1251, но не могу понять где это прописать в PHP
...
Рейтинг: 0 / 0
Проблема с подключением к базе DB2 через PHP
    #36881562
jack_nsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OlegA67
Почитал на форуме что надо прописать команду db2set DB2CODEPAGE=1251, но не могу понять где это прописать в PHP

я подобное прописывал, когда аппач,пхп и дб2 стояли на одной машине (винда)
настаивал для корректной работы xml
там мне нужно было поменять настройки драйвера клиента,
т.к. php_ibm_db2.dll использует на одном хосте библиотеку db2cli.dll
и судя по
авторApache Environment
PATH C:\work\PHP\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\wbem;c:\program files\ati technologies\ati.ace\core-static;c:\windows\system32\windowspowershell\v1.0;c:\program files\ibm\gsk8\lib;C:\PROGRA~1\IBM\SQLLIB\BIN;C:\PROGRA~1\IBM\SQLLIB\FUNCTION;C:\PROGRA~1\IBM\SQLLIB\SAMPLES\REPL

должен её видеть

в ПХП db2set DB2CODEPAGE=1251 прописывать не нужно,
возможно, это нужно сделать на машине, где стоит дб2
для ПХП я настраивал страницу по-умолчанию,
используя параметр
default_charset = "utf-8" в php.ini

вероятно в твоем случае нужно попробовать сделать соединение,
описывая его несколько по иному

по крайней мере, я себе поставил IBM Data Studio standalone на старенькую вин2000
и датастудия прицепилась к дб2 на другом хосте примерно через такую строку

jdbc:db2://192.168.1.1:50000/my_db:retrieveMessageFromServerOnGetMessage=true;
(последние строчки полагаю опции соединения)

или же нужно настраивать runtime client на линуксовой машине,
и для него прописывать кодовую страницу...
(правда у меня не получилось для вин2000) :)
...
Рейтинг: 0 / 0
Проблема с подключением к базе DB2 через PHP
    #36881565
jack_nsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Проблема с подключением к базе DB2 через PHP
    #36883844
OlegA67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ввел команду на Линуксе
Код: plaintext
db2set db2codepage= 1251  -i 
и конект пошел.
...
Рейтинг: 0 / 0
Проблема с подключением к базе DB2 через PHP
    #37114246
OlegA67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Опять к сожалению приходится поднимать этот вопрос. Полетел сервак на котором все работало.
Пытаюсь настроить все это на другом серваке, и опять таже ошибка при подключение к базе.
Если в первом случае это было связано с отсутствием имени инстанции в php.ini то сейчас все прописано.
Нет никаких сообщений от команд db2_conn_errormsg() и db2_conn_error() в файле error.log от Апача тоже нет никаких сообщений. Появляются они там когда передаются большое количество параметрв в функцию db2_connect().
Апач развернут под Red Hat' ом. Хотя бы знать в каком направлении рыть.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Проблема с подключением к базе DB2 через PHP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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