rhel6 上的 php pdo_informix - 未实现可选功能
Posted
技术标签:
【中文标题】rhel6 上的 php pdo_informix - 未实现可选功能【英文标题】:php pdo_informix on rhel6 - Optional feature not implemented 【发布时间】:2015-08-20 10:11:47 【问题描述】:我已经配置了 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
谷歌搜索无助于解决此问题.. 欢迎任何建议
【问题讨论】:
是否有 Informix 实现(在您的 php 版本中)? php 已重建 --with-pdo --with-pdo-informix 你检查过 phpinfo() for informix 的输出吗? 是的,它已被预先设置,并且我让 php 在控制台中加载的 pdo 库列表中显示 informix.. 省略 DB_LOCALE 和 CLIENT_LOCALE 会有什么结果? 【参考方案1】:问题已解决。 对于那些可能在informix 或其他pdo 库中遇到同样问题的人,我想分享一下。
我的麻烦在于选择最新版本的 PDO_INFORMIX 源代码。我搜索并发现,php 5.3 需要 informix 不迟于 1.2.6 版本。
我从一篇匈牙利语文章中发现了该信息,它是整个 www.php 和 PDO_INFORMIX
之间这种不兼容的唯一帖子。
在 IBM 站点和 pdo PECL 源站点上没有任何此类信息字符串。天哪,这需要我几天时间,但我做到了!
在找到正确的版本后,我不得不重新编译 php,因为它已将 1.3.0 版本的 informix pdo 放入缓存中,并且不想使用旧版本。
希望这会有所帮助!
【讨论】:
以上是关于rhel6 上的 php pdo_informix - 未实现可选功能的主要内容,如果未能解决你的问题,请参考以下文章
RHEL8 上的 glibc sscanf 分段错误,相同的代码适用于 RHEL 5、RHEL6 和 RHEL7