2015-08-10 4 views
1

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

Для совместимости драйверов PDO я использовал php5.4, поскольку php5.5 не смог загрузить расширение PDO для IBM_DB2. Я первоначально имел ODBC драйвер IBM DB2 работает с 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 для установки в IBM i Access для Windows и подумал, что это может быть именно драйвер. Я должен был выполнить восстановление системы, чтобы получить драйвер ODBC Access iSeries, но восстановление удалило другой драйвер IBM ODBC. Драйвер ODBC Access iSeries теперь отображается правильно.

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

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

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

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

+0

Смотрите, если это существующий ответ помогает: http://stackoverflow.com/questions/19184302/connecting-to-an- ibm-as-400-db2-database – mustaccio

ответ

1

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

1) Чтобы избавиться от сообщения db2cli.dll, драйверы odbc cli необходимо было загрузить из IBM (в дополнение к Client Access 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}"); 
+0

Зачем вам нужен дополнительный драйвер ODBC в дополнение к драйверу IBM i Access? – WarrenT

+0

@WarrenT Расширение pdo не загружается без файла db2cli.dll, связанного с драйвером ODBC IBM DB2. Если вы не используете PDO, он не нужен. – Cymbals

Смежные вопросы