To correctly display and otherwise handle strings from Db2 in php you should set an environmental variable DB2CODEPAGE. For UTF-8 database it is usually 1208.
For example, put
env[DB2CODEPAGE] = 1208
in your /etc/php-fpm.d/www.conf file.
(No version information available, might only be in Git)
DSN de PDO_IBM — Conectarse a bases de datos de IBM
El Nombre del origen de datos (DSN) de PDO_IBM (DSN) está basado en el DSN de CLI de IBM. Los componentes princiaples del DSN de PDO_IBM DSN son:
El prefijo DSN es ibm:
.
El DSN puede ser lo siguiente:
a) La configuración del origen de datos usando db2cli.ini o odbc.ini
b) El nombre de la base de datos catalogada, es decir, el alias de la base de datos en el catálogo cliente de DB2
c) Una cadena de conexión completa con el siguiente formato:
DRIVER={IBM DB2 ODBC DRIVER};DATABASE=
donde cada parámetro representa los siguientes valores:
database
;HOSTNAME=hostname
;PORT=port
;PROTOCOL=TCPIP;UID=username
;PWD=password
;
database
El nombre de la base de datos.
hostname
El nombre o la dirección IP del host del servidor de bases de datos.
port
El puerto TCP/IP en el que la base de dtaos escuchará peticiones.
username
El nombre de usuario con el cual conectarse a la base de datos.
password
La contraseña con la cual conectarse a la base de datos.
Ejemplo #1 Ejemplo de DSN de PDO_IBM DSN usando db2cli.ini
El siguiente ejemplo muestra un DSN de PDO_IBM DSN para conectarse a una base de datos de DB2 catalogada como DB2_9 en db2cli.ini:
$bd = new PDO("ibm:DSN=DB2_9", "", ""); [DB2_9] Database=testdb Protocol=tcpip Hostname=11.22.33.444 Servicename=56789
Ejemplo #2 Ejemplo de DSN de PDO_IBM usando una cadena de conexión
El siguiente ejemplo muestra un DSN de PDO_IBM para conectarse a un base
de datos de DB2 llamada testdb
usando la sintaxis
de cadena de conexión de DB2 CLI.
$bd = new PDO("ibm:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=testdb;" . "HOSTNAME=11.22.33.444;PORT=56789;PROTOCOL=TCPIP;", "testuser", "tespass");
To correctly display and otherwise handle strings from Db2 in php you should set an environmental variable DB2CODEPAGE. For UTF-8 database it is usually 1208.
For example, put
env[DB2CODEPAGE] = 1208
in your /etc/php-fpm.d/www.conf file.
The connection string is wrong for the example :
$db = new PDO("ibm:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=testdb;" .
"HOSTNAME=11.22.33.444;PORT=56789;PROTOCOL=TCPIP;", "testuser", "tespass");
You get the PDO Exception with the error code -1329.
You have to write :
$db = new PDO(
"ibm:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=testdb;" .
"HOSTNAME=11.22.33.444;PORT=56789;PROTOCOL=TCPIP;UID=testuser;PWD=testpass",
"",
"");