php - Ubuntu 10.04 zend-server 和 informix 连接

标签 php ubuntu informix

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

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/>";
}

我在浏览器中遇到以下错误:
Failed: SQLSTATE=HY000, SQLDriverConnect: -23101 [Informix]
   [Informix ODBC Driver][Informix]Unspecified System Error = -23101.

如果我试图将 Ubuntu 上的 Server Studio 连接到 Informix DB,它运行良好,但我猜他们正在使用 JDBC 驱动程序。

如果我转到我的 Informix clientsdk 的 bin 目录,有一个名为 finderr 的应用程序。如果我做一个 finderr -23101 我得到以下输出:
./finderr -23101
-23101 Unable to load locale categories.

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

最佳答案

无法加载语言环境类别通常意味着没有为尝试访问 Informix 语言环境数据(在 $INFORMIXDIR/gls 中找到)的软件设置 INFORMIXDIR,或者语言环境类别未指定或指定错误。这些是典型的环境变量 CLIENT_LOCALE 和 DB_LOCALE,它们的值例如“en_us.8859-1”(默认值)或“es_es.u​​tf8”(在西类牙使用 UTF-8 的西类牙语)。

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

还有一些其他的环境变量可以使用 - DBLANG、LANG 和 LC_* 名称集。但是,如果设置了 CLIENT_LOCALE 和 DB_LOCALE,则不太可能需要它们。话虽如此,我最近发现使用 Informix 4GL (I4GL) 时,除非设置了 DBLANG 以及 *LOCALE 变量,否则某些用日文字符编写的表名等代码将无法编译。然而,LC* 和 LANG 变量似乎对结果几乎没有影响。

关于php - Ubuntu 10.04 zend-server 和 informix 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4194895/

相关文章:

linux - 在 informix 中捕获错误

php - 递归地合并两个 XML 文件

PHP parse_ini_file 和 includes 不工作(Ubuntu 桌面 LAMP)

Perl 找不到 XML/Simple.pm

Informix 过程 — 如何返回空表?

sql - Informix:如何获取最后插入的记录的ID

php - 使用 PHP MySql JQuery 将数据检索到 ajax 下拉菜单中

带有计时器的php ajax自动注销

javascript - 如何在不使用 Ajax 的情况下将值从 PHP 传递到 Javascript?

apache - 通配符 SSL 设置。无效域错误消息