连接到informix数据库 - PHP 方式
当前操作系统环境:RHEL 6U4 64bit 安装GCC
数据库版本:Informix 12.10.FC4, CSDK 4.10.FC4
所需要的软件包(包括但不仅限于以下):
php-5.3.3-22.el6.x86_64
php-devel-5.3.3-22.el6.x86_64 注:该包位于DVD2上
PDO_INFORMIX 下载地址:http://pecl.php.net/package/PDO_INFORMIX
使用root用户权限,并包含以下环境变量
INFORMIXDIR=/home/informix
INFORMIXSERVER=db31
ONCONFIG=onconfig.db31
PATH=$INFORMIXDIR/bin:$PATH
LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql # LD_LIBRARY_PATH need!
export INFORMIXDIR INFORMIXSERVER ONCONFIG PATH LD_LIBRARY_PATH
将PDO_INFORMIX-1.3.1.tgz解包,并进入编译(须确认已安装php-devel)
[root@rhel6u4 PDO_INFORMIX-1.3.1]# phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
编译
[root@rhel6u4 PDO_INFORMIX-1.3.1]# ./configure --prefix=/usr/lib64/php/modules \
--with-php-config=/usr/bin/php-config --with-pdo-informix
注:--perfix的路径由php-config的输出--extension-dir 确定,
--with-php-config为php-config的位置(可通过whereis php-config查找)。
在/etc/php.d目录下增加pdo_informix.ini配置文件,内容为
extension=pdo_informix.so
如果正确完成,编写一个测试php文件t.php
<?php
$dbh = new PDO("informix:host=192.168.80.64; service=12131; database=sysmaster; server=db31; protocol=onsoctcp");
$sth1 = $dbh->prepare("select tabid, tabname from systables");
$sth1->execute();
while( $row = $sth1->fetch() )
{
printf("%d %-15s\n", $row['TABID'], $row['TABNAME']);
}
$dbh = null;
?>
通过php -e t.php执行,查看结果
[root@rhel6u4 group]# php -e t.php
1 systables
2 syscolumns
3 sysindices
4 systabauth
5 syscolauth
6 sysviews
7 sysusers
8 sysdepend
9 syssynonyms
10 syssyntable