PHP 8.4.1 Released!

DSN-строка подключения через драйвер PDO_IBM

(No version information available, might only be in Git)

DSN-строка подключения через драйвер PDO_IBMСоединение с базой данных IBM

Описание

В основе DSN-строки подключения (англ. сокр.: Data Source Name — имя источника данных) через драйвер PDO_IBM лежит DSN-строка CLI-интерфейса IBM. Главные компоненты DSN-строки подключения через драйвер PDO_IBM:

DSN-префикс

DSN-префикс — строка ibm:.

DSN

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 Пример 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, которую записали синтаксисом соединения с CLI-интерфейса БД DB2.

$db = new PDO("ibm:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=testdb;" .
  "HOSTNAME=11.22.33.444;PORT=56789;PROTOCOL=TCPIP;", "testuser", "tespass");

Добавить

Примечания пользователей 2 notes

up
0
user274091 at gmail dot com
2 months ago
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.
up
0
franck dot thomas at consult-ix dot fr
5 years ago
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",
"",
"");
To Top