Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Непонятки со строкой соединения в db2_connect / 12 сообщений из 12, страница 1 из 1
27.04.2010, 11:20
    #36600162
Непонятки со строкой соединения в db2_connect
Есть такой код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
$db = 'NSPFT';
$user = 'user';
$password = 'pass';
$hostname = 'thehost';
$port =  50004 ;
//
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF, 'DB2_ATTR_CASE' => DB2_CASE_UPPER);
$conn_string = "DRIVER=php_ibm_db2;DATABASE=$db;HOSTNAME=$hostname;PORT=$port;
    PROTOCOL=TCPIP;UID=$user;PWD=$password;";
$pgConn = db2_connect($conn_string, '', '', $options);
if(!$pgConn){
    echo '<p>1. Ошибка соединения c СУБД DB2: '.db2_conn_errormsg().". conn string=$conn_string</p>";
    //die;
}else{
    echo "<p>1. Есть соединение с DB2. $conn_string";
}
$conn_string = "DRIVER=php_ibm_db2;DATABASE=NSPFT;HOSTNAME=thehost;PORT=50004;PROTOCOL=TCPIP;UID=user;PWD=pass;";
$pgConn = db2_connect($conn_string, '', '', $options);
if(!$pgConn){
    echo '<p>2. Ошибка соединения c СУБД DB2: '.db2_conn_errormsg().". conn string=$conn_string</p>";
    //die;
}
else{
    echo "<p>2. Есть соединение с DB2. $conn_string";
}
pgConn1 - нет соединения,
pgConn2 - есть соединение.

вывод в Мозилле:
1. Ошибка соединения c СУБД DB2: [IBM][CLI Driver] SQL1013N The database alias name or database name " " could not be found. SQLSTATE=42705 SQLCODE=-1013. conn string=DRIVER=php_ibm_db2;DATABASE=NSPFT;HOSTNAME=thehost;PORT=50004; PROTOCOL=TCPIP;UID=user;PWD=pass;

2. Есть соединение с DB2. DRIVER=php_ibm_db2;DATABASE=NSPFT;HOSTNAME=thehost;PORT=50004;PROTOCOL=TCPIP;UID=user;PWD=pass;

В чём туту дело?
...
Рейтинг: 0 / 0
27.04.2010, 17:19
    #36601257
use-se
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятки со строкой соединения в db2_connect
стоит проверить каталогизирована ли БД.

запустить утилиту db2cmd
в окне утилиты ввести
Код: plaintext
db2 list db directory
если БД есть в списке то проверить соединение
Код: plaintext
db2 connect to <db_name> user <user_name> using <user_password>
...
Рейтинг: 0 / 0
27.04.2010, 21:29
    #36601705
Anka_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятки со строкой соединения в db2_connect
use-seстоит проверить каталогизирована ли БД.

запустить утилиту db2cmd
в окне утилиты ввести
Код: plaintext
db2 list db directory
если БД есть в списке то проверить соединение
Код: plaintext
db2 connect to <db_name> user <user_name> using <user_password>

П-р-р-равильно, :) человек говорит, проверить нужно list db, но если под аккаунтом пользователя коннекта нет это ещё ни факт, что ошибка, самый точный вариант узнать у админсистратора базы данных (АБД)
...
Рейтинг: 0 / 0
28.04.2010, 09:12
    #36602086
Непонятки со строкой соединения в db2_connect
Товарищи советчики, потрудитесь, пожалуйста, читать топик прежде, чем советовать. При чем здесь "если под аккаунтом пользователя коннекта нет"!!!
Для тех, кто сможет помочь, напишу другими словами. Есть соединение. Вся разница в том, что, когда в php-скрипте строка соединения формируется с переменными, соединения - нет. Когда переменные впиханы буквами в строку - соединение есть.

зы: > use-se: ради интереса проверил соедиенение с помощью db2cmd. соединение есть
...
Рейтинг: 0 / 0
28.04.2010, 09:30
    #36602117
askfinder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятки со строкой соединения в db2_connect
Алексей Слепов,

Вы проверяли что именно лежит в $conn_string после выполнения строки:
$conn_string = "DRIVER=php_ibm_db2;DATABASE=$db;HOSTNAME=$hostname;PORT=$port; PROTOCOL=TCPIP;UID=$user;PWD=$password;";
?
Я не большой спец в PHP, но похоже искать нужно именно тут.
...
Рейтинг: 0 / 0
28.04.2010, 09:52
    #36602167
Непонятки со строкой соединения в db2_connect
askfinderАлексей Слепов,

Вы проверяли что именно лежит в $conn_string после выполнения строки:
$conn_string = "DRIVER=php_ibm_db2;DATABASE=$db;HOSTNAME=$hostname;PORT=$port; PROTOCOL=TCPIP;UID=$user;PWD=$password;";
?
Я не большой спец в PHP, но похоже искать нужно именно тут.

Йокрный бабай! Просто одно желание - написать в "задолба.ли!"
В топике ясно показано, что лежит после выполнения обоих запросов. внизу. после слов "Вывод в Мозилле".
Ну не хотите разобраться в сути проблемы - ну так не пишите! Катайте лучше перлы на баш!! >:|
...
Рейтинг: 0 / 0
28.04.2010, 11:06
    #36602381
Непонятки со строкой соединения в db2_connect
Алексей Слепов,

"На глаз" отличие действительно незаметно.
Поэтому просто взял обе строки, и вставил в текстовый файл друг под другом.
Результат:
Код: plaintext
1.
2.
DRIVER=php_ibm_db2;DATABASE=NSPFT;HOSTNAME=thehost;PORT= 50004 ; PROTOCOL=TCPIP;UID=user;PWD=pass;
DRIVER=php_ibm_db2;DATABASE=NSPFT;HOSTNAME=thehost;PORT= 50004 ;PROTOCOL=TCPIP;UID=user;PWD=pass;
В первом случае между PORT=50004; и PROTOCOL=TCPIP; стоит пробел, что и приводит к ошибке.
...
Рейтинг: 0 / 0
28.04.2010, 12:34
    #36602641
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятки со строкой соединения в db2_connect
Алексей СлеповВ чём туту дело?В одной строке, а не в 2-х:
Код: plaintext
1.
2.
$conn_string = "DRIVER=php_ibm_db2;DATABASE=$db;HOSTNAME=$hostname;PORT=$port;
    PROTOCOL=TCPIP;UID=$user;PWD=$password;";
У меня работает, когда в 1 строку, и то же самое, когда в 2-х как у вас.
Т.е.:
Код: plaintext
1.
$conn_string = "DRIVER=php_ibm_db2;DATABASE=$db;HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;UID=$user;PWD=$password;";
...
Рейтинг: 0 / 0
28.04.2010, 12:50
    #36602701
Непонятки со строкой соединения в db2_connect
> Евгений Хабаров
> Mark Barinstein
спасибо! убрал пробел, записав в одну строку, - заработало
(вопрос решен)
...
Рейтинг: 0 / 0
28.04.2010, 13:33
    #36602859
use-se
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятки со строкой соединения в db2_connect
Алексей СлеповТоварищи советчики, потрудитесь, пожалуйста, читать топик прежде, чем советовать. При чем здесь "если под аккаунтом пользователя коннекта нет"!!!
Для тех, кто сможет помочь, напишу другими словами. Есть соединение. Вся разница в том, что, когда в php-скрипте строка соединения формируется с переменными, соединения - нет. Когда переменные впиханы буквами в строку - соединение есть.

зы: > use-se: ради интереса проверил соедиенение с помощью db2cmd. соединение есть
да тупанул я
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
01.03.2012, 08:26
    #37685619
Shahlo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятки со строкой соединения в db2_connect
как соединить php c db2 или нужны какие та драйвера для подключение?
...
Рейтинг: 0 / 0
01.03.2012, 10:21
    #37685774
Непонятки со строкой соединения в db2_connect
Shahlo,

Вопрос поднимается не в первый раз, поэтому вот ссылки на существующие темы
Где взять рабочую версию "php_ibm_db2.dll"?
DB2 Connect 9.5 + PHP 5.2.x + Apache 2.2.x + Windows
DB2+PHP+APACHE+Windows

NTS-библиотека идет в составе клиента версии 9.5.
Более новые библиотеки (TS и NTS) выложены здесь : http://downloads.php.net/pierre/
PHP нужно настроить согласно документации : Setting up the PHP environment on Windows
Основная ссылка на документацию от IBM по PHP DB2: Introduction to PHP application development for DB2

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


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