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.
(PECL PDO_IBM >= 0.9.0)
PDO_IBM DSN — IBM veritabanı bağlantısı
PDO_IBM Veri Kaynağı Adı (DSN), IBM CLI DSN'sine dayanır. PDO_IBM Veri Kaynağı Adı (DSN) şu öğelerden oluşur:
DSN öneki ibm:
dizgesidir.
Şunlardan biri olabilir:
Veri kaynağı db2cli.ini veya odbc.ini kullanılarak ayarlanır.
Kataloglu veritabanı adı; yani veritabanının DB2 istemci kataloğundaki takma adı.
Eksiksiz bağlantı dizgesi; sözdizimi şöyledir:
DRIVER={IBM DB2 ODBC DRIVER};
DATABASE=
veritabanı
;
HOSTNAME=konakadı
;
PORT=port
;PROTOCOL=TCPIP;
UID=kullanıcı
;
PWD=parola
;
veritabanı
Veritabanının adı.
konakadı
Veritabanı sunucusunun IP adresi veya konak adı.
port
Veritabanı sunucusunun dinlediği port.
kullanıcı
Veritabanına bağlantı için kullanıcı adı.
password
Veritabanına bağlantı için parola.
Örnek 1 - db2cli.ini kullanarak PDO_IBM DSN örneği
Aşağıdaki örnekte, db2cli.ini dosyasında DB2_9 adıyla kataloglanmış bir DB2 veritabanına bağlanmak için kullanılan bir PDO_IBM DSN'si gösterilmiştir:
$db = new PDO("ibm:DSN=DB2_9", "", ""); [DB2_9] Database=testdb Protocol=tcpip Hostname=11.22.33.444 Servicename=56789
Örnek 2 - Bağlantı dizgeli PDO_IBM DSN'si örneği
Aşağıdaki örnekte, testdb
adında bir DB2
veritabanına bağlanmak için bir DB2 CLI bağlantı dizgesini kullanan bir
PDO_IBM DSN'si gösterilmiştir:
$db = 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",
"",
"");