Я пытаюсь подключить базу данных db2, используя php. Теперь, я собираюсь написать код, подобный этому (вызвать хранимую процедуру):
$proc = 'CALL MyLib.MySP(?, ?, ?)'; $stmt = db2_prepare($conn, $proc) or die("db2_prepare failed<br>"); // Define input variable values // $paramIN1 = ...; $paramIN2 = ...; $paramOUT3 = ""; // Define parameters // db2_bind_param($stmt, 1, "paramIN1", DB2_PARAM_IN); db2_bind_param($stmt, 2, "paramIN2", DB2_PARAM_IN); db2_bind_param($stmt, 3, "paramOUT3", DB2_PARAM_OUT); // Display results set // if (db2_execute($stmt)) { while ($row = db2_fetch_array($stmt)) { print " {$row[0]}, {$row[1]}, {$row[5]}<br>"; } }
Код подключения:
$user = 'user'; $password = 'pass'; $hostname = 'ip'; $db = 'db'; $conn_string = "DRIVER={IBM DB2 ODBC DRIVER};HOSTNAME=$hostname;PROTOCOL=TCPIP;UID=$user;PWD=$password;DATABASE=$db;"; $conn = db2_connect($conn_string, $user, $password);
Соединение здесь не работает. Сообщение об ошибке, возвращаемое из db2_conn_errormsg (), равно:
"[IBM][CLI Driver] SQL1032N No start database manager command was issued. SQLSTATE=57019 SQLCODE=-1032"
Это система AS / 400. С odbc мы можем подключаться и разговаривать с базой данных без проблем.