首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ubuntu 10.04 zend-server与informix的连接

Ubuntu 10.04 zend-server与informix的连接
EN

Stack Overflow用户
提问于 2010-11-16 21:58:44
回答 2查看 2.1K关注 0票数 1

我在获取连接到Informix DB的PHP脚本时遇到了问题。我考虑安装Zend-server社区版,以及pdo_informix扩展。当我在浏览器中运行Zend-server admin时,我看到pdo_informix扩展被标记为“绿色”。之后,我在Ubuntu上安装了Informix 3.70。我已经将$INFORMIXDIR环境变量设置到/etc/profile和bin目录的PATH变量中。安装目录是/opt/IBM/informix。当我现在尝试用PHP编写代码时,比如

代码语言:javascript
复制
try{

 $db = new PDO("informix:host=xx.xx.com;database=xxx;server=xxx_net; protocol=onsoctcp;", databaseuser, databasepassword);
 $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 echo "test";

}catch (PDOException $e){

 echo "<br/>Failed: ". $e->getMessage()."<br/>";
}

我在浏览器中得到了以下错误:

代码语言:javascript
复制
Failed: SQLSTATE=HY000, SQLDriverConnect: -23101 [Informix]
   [Informix ODBC Driver][Informix]Unspecified System Error = -23101.

如果我尝试与Ubuntu上的Server Studio连接到Informix DB,它工作得很好,但我猜他们使用的是JDBC驱动程序。

如果我转到我的Informix客户端an的bin目录,有一个名为finderr的应用程序。如果我执行finderr -23101,我会得到以下输出:

代码语言:javascript
复制
./finderr -23101
-23101 Unable to load locale categories.

所以我想我必须设置DB_LOCALE,CLIENT_LOCALE环境变量...我的服务器使用en_us.819,而我的客户端使用en_us.utf8。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-18 06:38:56

无法正常加载区域设置类别意味着没有为尝试访问Informix区域设置数据(位于$ INFORMIXDIR /gls中)的软件设置INFORMIXDIR,或者区域设置类别未指定或指定错误。这些是经典的环境变量CLIENT_LOCALE和DB_LOCALE,它们的值如'en_us.8859-1‘(默认值)或'es_es.utf8’(在西班牙使用UTF-8的西班牙语)。

我将专注于确保浏览器的环境设置正确。这可能取决于您如何启动它。

还可以使用其他一些环境变量- DBLANG、LANG和LC_*名称集。但是,如果设置了CLIENT_LOCALE和DB_LOCALE,则不太可能需要它们。话虽如此,但我最近发现,在Informix4GL (I4GL)中,如果不设置DBLANG和*语言环境变量,一些在表名中使用日语字符编写的代码将无法编译。然而,LC*和LANG变量似乎对结果的影响很小,甚至没有影响。

票数 2
EN

Stack Overflow用户

发布于 2010-11-17 15:20:34

您可能需要设置LD_LIBRARY_PATH。我是这样做的:

代码语言:javascript
复制
export LD_LIBRARY_PATH=$INFORMIXDIR/lib/:$INFORMIXDIR/lib/cli:$INFORMIXDIR/lib/esql:
export PATH=$INFORMIXDIR/bin:$INFORMIXDIR/lib:/usr/local/bin:/usr/bin:/bin

如果这不起作用,那么您可以尝试使用unixODBC。PHP似乎使用了某种ODBC。在Informix手册中有一篇关于连接到unixODBC的文章--请阅读它。使用isql (interactive SQL) unixODBC工具连接到已配置的ODBC数据库。

如果ODBC无法连接到数据库并返回相同的错误,那么您可以使用strace查看isql驱动程序无法加载的库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4194895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档