1、安装instantclientphp
直接解压、并设置好环境变量便可,具体可参考之前的一篇博文:html
http://blog.sina.com.cn/s/blog_54dd80920101d8mf.html数据库
特别要在安装目录创建如下符号链接:(在不然编译oci8模块通不过)apache
sudo ln -s libclntsh.so.11.1 libclntsh.so测试
sudo ln -s libocci.so.11.1 libocci.sofetch
2、装oci8扩展编码
一、去http://pecl.php.net/package/oci8 下载最新源代码spa
二、解压tar xzvf oci8-2.0.8.tgz.net
三、cd oci8-2.0.8/ 并执行/opt/php/bin/phpizedebug
四、./configure --with-oci8=shared,instantclient,/opt/ora11g/instantclient_11_2
五、make
六、sudo make install 这时oci8扩展模块已经安装到PHP中了,个人模块路径:/opt/php/lib/php/extensions/no-debug-zts-20121212/oci8.so
七、 修改/opt/php/lib/php.ini加入extension=oci8.so;
也能够是全路径:extension=/opt/php/lib/php/extensions/no-debug-zts-20121212/oci8.so;
3、Restart Apache.
sudo service apachectl restart
4、测试
<?php 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); }//处理结果 ?>
5、中文乱码问题
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');
6、装PDO扩展
一、进入PHP源码目录
二、cd ext/pdo_oci
三、执行/opt/php/bin/phpize
四、 ./configure --with-php-config=/opt/php/bin/php-config --with-pdo-oci=instantclient,/opt/ora11g/instantclient_11_2,11.2.0.4.0
五、make
六、sudo make install 这时pdo_oci.so扩展模块已经安装到PHP中了,个人模块路径:/opt/php/lib/php/extensions/no-debug-zts-20121212/pdo_oci.so
七、 修改/opt/php/lib/php.ini加入extension=pdo_oci.so;