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.PDO_DBLIB DSN
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
PDO_DBLIB DSN
Референца за `ref.pdo-ibm.connection.php` со подобрена типографија и навигација.
PDO_DBLIB DSN
(PECL PDO_IBM >= 0.9.0)
PDO_DBLIB DSN — Поврзување со IBM бази на податоци
= NULL
Името на изворот на податоци (DSN) за PDO_IBM се базира на името на изворот на податоци (DSN) на IBM CLI. Главните компоненти на DSN за PDO_IBM се:
- Името на изворот на податоци (DSN) на PDO_ODBC се состои од следниве елементи:
-
DSN префикс
ibm:. - DSN
-
DSN може да биде било кој од следниве:
-
а) Поставување извор на податоци користејќи db2cli.ini or odbc.ini
-
б) Каталогизирано име на базата на податоци, т.е. нонпејм на базата на податоци во каталогот на клиентот DB2
-
в) Целосен стринг за поврзување во следниот формат:
DRIVER={IBM DB2 ODBC DRIVER};DATABASE=каде што параметрите ги претставуваат следните вредности:database;HOSTNAME=hostname;PORT=port;PROTOCOL=TCPIP;UID=username;PWD=password;database-
Името на базата на податоци.
hostname-
Име на хост или IP адреса на серверот на базата на податоци.
port-
TCP/IP портата на која базата на податоци слуша за барања.
username-
Корисничкото име со кое се поврзувате на базата на податоци.
password-
Лозинката со која се поврзувате на базата на податоци.
-
Примери
Пример #1 Пример за DSN за PDO_IBM користејќи db2cli.ini
Следниот пример покажува DSN за PDO_IBM за поврзување со база на податоци DB2 каталогизирана како DB2_9 во db2cli.ini:
$db = new PDO("ibm:DSN=DB2_9", "", "");
[DB2_9]
Database=testdb
Protocol=tcpip
Hostname=11.22.33.444
Servicename=56789
Пример #2 Пример за DSN за PDO_IBM користејќи стринг за поврзување
Следниот пример покажува DSN за PDO_IBM за поврзување со база на податоци DB2 наречена testdb користејќи ја синтаксата на стринг за поврзување на DB2 CLI.
$db = new PDO("ibm:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=testdb;" .
"HOSTNAME=11.22.33.444;PORT=56789;PROTOCOL=TCPIP;", "testuser", "tespass");
Белешки од корисници 2 забелешки
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",
"",
"");