PHP PDO Windows для iSeries IBM DB2

Я пытаюсь получить соединение PDO (php 5.4) в Windows 7 (64-разрядная версия) для подключения к ISeries IBM AS / 400. Моя конечная цель — использовать Yii2, который использует PDO.

Для совместимости с драйверами PDO я использовал php5.4, так как php5.5 не смог загрузить расширение PDO для IBM_DB2. Я изначально имел IBM DB2 odbc драйвер работает с PDO, используя следующую строку подключения:

 try {
$dbc = new PDO("ibm:DRIVER={IBM DB2 ODBC DRIVER};
DATABASE=MYDB;"."HOSTNAME=myhost;", "myuser", "mypassword");
} catch (PDOException $e) {
print "Error!: " . $e->getMessage(). "<br/>";
die();
}

…но я получаю ошибки соединения с хоста. Может быть, это неправильный драйвер для iSeries?

Затем я нашел драйвер ODBC iSeries Access в установке для IBM i Access для Windows и подумал, что это может быть драйвер, необходимый вместо этого. Мне пришлось выполнить восстановление системы, чтобы заставить работать драйвер ODBC iSeries Access, но при восстановлении был удален другой драйвер IBM DB2 ODBC. Драйвер ODBC iSeries Access теперь отображается правильно.

Однако теперь расширение PDO не удалось загрузить. Он жаловался на отсутствие db2cli.dll. Пытаясь исправить это, он также переустановил старое соединение драйвера IBM DB2 ODBC. Примечание: я все еще получаю сообщение об ошибке.

1) Будет ли драйвер ODBC IBM DB2 работать с iSeries, и у меня просто неверная строка подключения?

2) Указывает ли отсутствующее сообщение db2cli.dll, что соединение PDO действительно связано с драйвером ODBC IBM DB2? Мне интересно, можно ли / нужно использовать драйвер ODBC iAccess с расширением PDO.

Любая помощь приветствуется. Спасибо.

1

Решение

Оба драйвера ODBC требуются, и строка подключения неверна.

1) Чтобы избавиться от сообщения db2cli.dll, драйверы odbc cli нужно было загрузить из IBM (в дополнение к клиентскому доступу 7.1.zip для драйверов ODBC iSeries), а затем путь должен был быть обновлен вручную, чтобы он указывал на файл db2cli.dll.

2) Строка подключения выглядит следующим образом: (включая фигурные скобки)

$dbc = new PDO("odbc:DRIVER={iSeries Access ODBC DRIVER}; ",
"SYSTEM={foobar}; ",
"DATABASE={dbname}; ",
"UID={foo}; ",
"PWD={bar}");
2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector