Я настроил pdo_informix:
[root@cc-allplus nginx]# php -i |egrep "pdo|PDO"PDO
PDO support => enabled
PDO drivers => sqlite, sqlite2, odbc, pgsql, informix, dblib
pdo_dblib
PDO Driver for FreeTDS/Sybase DB-lib => enabled
pdo_informix
pdo_informix support => enabled
PDO_ODBC
PDO Driver for ODBC (unixODBC) => enabled
pdo_pgsql
PDO Driver for PostgreSQL => enabled
Revision => $Id: pdo_pgsql.c 300351 2010-06-10 12:11:19Z iliaa $
pdo_sqlite
PDO Driver for SQLite 3.x => enabled
и пытается создать соединение:
try{
$dbh = new PDO ("informix:host=some.example.ru; service=50000; database=test; server=test_net; protocol=onsoctcp;DB_LOCALE=en_US.57372; CLIENT_LOCALE=en_US.57372;", "dcs_test", "********");
}catch (PDOException $e){
echo 'Failed to execute your db connection: '. $e->getMessage().'</br>'; exit;
}
И ответ:
Failed to execute your db connection: SQLSTATE=HY000, SQLSetConnectAttr: -11097 [Informix][Informix ODBC Driver]Optional feature not implemented
Googling не помог в решении этой проблемы .. любые предложения приветствуются
Проблема была решена.
Для тех, кто может столкнуться с такими же проблемами с Informix или другими библиотеками pdo, я хотел бы поделиться.
Моя проблема заключалась в выборе последней версии soursec PDO_INFORMIX. Как я искал и обнаружил, PHP 5.3 необходимость сообщить не позднее 1.2.6 версия.
Я обнаружил эту информацию из статьи на венгерском языке, и это был единственный пост о такой несовместимости между php и PDO_INFORMIX
в целом www.
Ни одной строки такой информации ни на сайте IBM, ни на сайте источников pdo PECL … Боже, это заняло у меня несколько дней, но я это сделал!
После того, как я нашел правильную версию, мне пришлось перекомпилировать php, потому что он поместил 1.3.0 версию informix pdo в кеш и не хотел работать с более старой.
Надеюсь, это поможет!
Других решений пока нет …