要在 php 中正确显示和处理来自 Db2 的字符串,您应该设置环境变量 DB2CODEPAGE。对于 UTF-8 数据库,它通常是 1208。
例如,输入
env[DB2CODEPAGE] = 1208
到您的 /etc/php-fpm.d/www.conf 文件中。
(PECL PDO_IBM >= 0.9.0)
PDO_IBM DSN — 连接到 IBM 数据库
PDO_IBM 数据源名称 (DSN) 基于 IBM CLI DSN。PDO_IBM DSN 的主要组成部分是
DSN 前缀为 ibm:
。
DSN 可以是以下任何一种:
a) 使用 db2cli.ini 或 odbc.ini 设置的数据源
b) 编目数据库名称,即 DB2 客户端目录中的数据库别名
c) 完整的连接字符串,格式如下: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 使用 db2cli.ini 的 PDO_IBM DSN 示例
以下示例显示了一个 PDO_IBM DSN,用于连接到在 db2cli.ini 中编目为 DB2_9 的 DB2 数据库。
$db = new PDO("ibm:DSN=DB2_9", "", ""); [DB2_9] Database=testdb Protocol=tcpip Hostname=11.22.33.444 Servicename=56789
示例 #2 使用连接字符串的 PDO_IBM DSN 示例
以下示例显示了一个 PDO_IBM DSN,用于使用 DB2 CLI 连接字符串语法连接到名为 testdb
的 DB2 数据库。
$db = new PDO("ibm:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=testdb;" . "HOSTNAME=11.22.33.444;PORT=56789;PROTOCOL=TCPIP;", "testuser", "tespass");
要在 php 中正确显示和处理来自 Db2 的字符串,您应该设置环境变量 DB2CODEPAGE。对于 UTF-8 数据库,它通常是 1208。
例如,输入
env[DB2CODEPAGE] = 1208
到您的 /etc/php-fpm.d/www.conf 文件中。
此示例中的连接字符串错误
$db = new PDO("ibm:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=testdb;" .
"HOSTNAME=11.22.33.444;PORT=56789;PROTOCOL=TCPIP;", "testuser", "tespass");
您将收到带有错误代码 -1329 的 PDO 异常。
您必须编写
$db = new PDO(
"ibm:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=testdb;" .
"HOSTNAME=11.22.33.444;PORT=56789;PROTOCOL=TCPIP;UID=testuser;PWD=testpass",
"",
"");