php7连接instantclient,Linux下利用instantclient实现PHP远程连接Oracle

一、安装instantclient

直接解压、并设置好环境变量即可,具体可参考以前的一篇博文:

http://blog.sina.com.cn/s/blog_54dd80920101d8mf.html

特别要在安装目录建立以下符号连接:(在否则编译oci8模块通不过)

sudo ln -s libclntsh.so.11.1 libclntsh.so

sudo ln -s libocci.so.11.1 libocci.so

二、装oci8扩展

1、去http://pecl.php.net/package/oci8 下载最新源代码

2、解压tar xzvf oci8-2.0.8.tgz

3、cd oci8-2.0.8/ 并执行/opt/php/bin/phpize

4、./configure --with-oci8=shared,instantclient,/opt/ora11g/instantclient_11_2

5、make

6、sudo make install 这时oci8扩展模块已经安装到PHP中了,我的模块路径:/opt/php/lib/php/extensions/no-debug-zts-20121212/oci8.so

7、 修改/opt/php/lib/php.ini加入extension=oci8.so;

也可以是全路径:extension=/opt/php/lib/php/extensions/no-debug-zts-20121212/oci8.so;

三、Restart Apache.

sudo service apachectl restart

四、测试

header("Content-Type: text/html;charset=utf-8");

$dbconn =  oci_connect('scott','tiger',"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.110)(PORT = 1521))(CONNECT_DATA =(SID=orcl)))");

if ($dbconn) {

echo '连接成功';

}else {

echo '连接失败';

}

//查询

$oci_rs = oci_parse($dbconn,'SELECT * FROM user_tables');  //预处理SQL

oci_execute($oci_rs); //执行SQL

while ($row = oci_fetch_array($oci_rs,OCI_ASSOC)) {

print_r($row);

}//处理结果

?>

五、中文乱码问题

PHP页面中文问题:加

header("Content-Type: text/html;charset=utf-8");

数据库编码导致中文问题:把oci_connect('scott','tiger',"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.110)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME = orcl)))");改为oci_connect('scott','tiger',"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.110)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME = orcl)))",'utf8');

六、装PDO扩展

1、进入PHP源码目录

2、cdext/pdo_oci

3、执行/opt/php/bin/phpize

4、./configure --with-php-config=/opt/php/bin/php-config --with-pdo-oci=instantclient,/opt/ora11g/instantclient_11_2,11.2.0.4.0

5、make

6、sudo make install 这时pdo_oci.so扩展模块已经安装到PHP中了,我的模块路径:/opt/php/lib/php/extensions/no-debug-zts-20121212/pdo_oci.so

7、 修改/opt/php/lib/php.ini加入extension=pdo_oci.so;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值