我有一个问题,要获得一个连接到InformixDB的PHP脚本。我考虑安装Zend服务器社区版,此外还有pdo_informix扩展。当我在浏览器中运行Zend服务器管理时,我看到pdo_informix扩展名标记为“绿色”。之后,我在Ubuntu上安装了Informix ClientSDK 3.70。我已经将$INFORMIXDIR环境变量设置到/etc/profile中,并将PATH变量设置到bin目录中。安装目录是/opt/IBM/ininformix。当我现在尝试用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上的ServerStudio连接到InformixDB,它运行得很好,但我猜他们使用的是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。