db2_connect conectar php db2 ibm-midrange

conectar - Conexión de DB2 PHP



conectar php a db2 (2)

He estado cavando a través de stackoverflow durante unos días. Necesidad de conectarse a una base de datos DB2 con PHP. El siguiente código no devuelve el mensaje de error o ninguna información útil, y en su lugar simplemente rompe el código de JavaScript más adelante en la página.

include(TEMPLATEPATH.''/inc/library/adodb_lite/adodb.inc.php''); $DBName = ''DBNAME''; $Host = ''IPADDRESS''; $User = ''USER''; $Password = ''PASS''; $db = ADONewConnection(''db2''); $dsn = "driver={IBM db2 odbc DRIVER};Database=$DBName;hostname=$Host;protocol=TCPIP;uid=$User;pwd=$Password"; if ($db->Connect($dsn)) { echo "<div style=''color:green;font-size:21px;''>Connection Successful.</div>"; } else { echo "<div style=''color:#cc0000;font-size:21px;''>Connection Failed db->Connect(dsn)</div>"; echo ''SQLSTATE: ''.$db->ErrorNo()."<br>"; echo ''Message: ''.$db->ErrorMsg()."<br>"; }

Como seguido por http://adodb.sourceforge.net/


Mi idea es que el nombre de tu controlador no coincide con el que tienes en tu archivo odbcinst.ini. Esto es lo que estoy usando:

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

Tenga en cuenta que el "nombre" de este controlador se define como "Controlador ODBC de iSeries Access", lo que sea que coloque entre los corchetes [].

Ahora mi código PHP se ve así:

$this->db_connection = new PDO("odbc:DRIVER={iSeries Access ODBC Driver};SYSTEM=$this->he_database_server;PROTOCOL=TCPIP", $temp_username, $temp_password);

Por lo tanto, asegúrese de que el nombre del controlador (IBM db2 odbc DRIVER) sea el mismo en su archivo odbcinst.ini.

Ahora bien, si eso no resuelve el problema, le recomiendo que active el registro ODBC agregando lo siguiente a su archivo odbcinst.ini:

[ODBC] TraceFile = /tmp/odbc.log Trace = Yes

Eso escribirá una gran cantidad de información en un archivo de registro y le dará una buena idea de lo que está mal. Si eso todavía no funciona, mis únicas otras sugerencias son las más básicas: asegúrese de que el nombre de usuario / contraseña sea correcto, que el AS / 400 sea accesible desde el servidor que ejecuta PHP, etc.