php连接oracle(PHP远程连接oracle数据库操作实现方法图文详解)
php连接oracle
PHP远程连接oracle数据库操作实现方法图文详解本文实例讲述了php远程连接oracle数据库操作实现方法。分享给大家供大家参考,具体如下:
一.以下是基于 wampserver 的php 访问oracle数据库的操作步骤:
1、第一步:让php支持oci
首先,安装php的集成运行环境,网上有很多集成,我安装的是wampserver的(具体的安装方法也可以参考之前写的另一篇文章),安装好后,从安装目录中找到php.ini文件,比如我本地的路径是d:\wamp\bin\php\php5.3.3,将php.ini中的php_oci8.dll的;去掉,也就是把注释去掉,相当于可以使用php_oci8了。
2、第二步:然后wampserver运行后,将php>php extentions中将php_oci8打上勾
【其他的集成环境其实也是可以的,比如phpstudy,我们可以直接从php扩展的选项里打勾对应的】。
3、第三步:oracle 数据库文件配置
对于安装有oracle客户端的pc机,可以在oracle安装配置文件,tnsnames.ora文件,此文件路径是安装oracle的路径,比如我本机的是
f:\oracle\product\10.2.0\client_1\network\admin ,所连的192.168.1.198数据库,其中的配置详情如下(如果显示 127.0.0.1 默认为本机):
|
(description = (address_list = (address = (protocol = tcp)(host = 192.168.1.198)(port = 1521)) ) (connect_data = (service_name = orcl) ) ) |
4、第四步:检测oci8是否配置成功
①.一般情况下,打开localhost即能显示 phpinfo.php界面,里面即为 php 信息。可采用 “ctrl+f”搜索“oci”,查看是否有对应的oci模块,当然有一点php基础的完全可以直接访问自己编写的文件,记得里面加入“
echo phpinfo();
”即可。②.不要高兴太早,走到这一步,至少我是查不到的对应信息的,这时可以按照网上的一些建议,把php的ext目录下的php_oci8.dll拷到system32目录下
③.最后建议重启服务,最好是重启电脑(我在测试时发现,重启服务没用,有一次是无意中 刷新出了oci扩展,所以如果操作方法没错,我建议进行重启.)
二.代码测试远程连接 orcal 数据库(建议可用自己的oracle客户端试着是否能连接对方的服务端,以保证操作的成功率)
|
<?php /** * created by phpstorm. * user: administrator * date: 2015/12/7 * time: 16:25 */ echo 'ff' ; //进行连接数据库的参数配置 $dbstr ="(description =(address = (protocol = tcp)(host =192.168.11.198)(port = 1521)) (connect_data = (server = dedicated) (service_name = orcl) (instance_name = orcl)))"; //phpinfo(); $conn = oci_connect( 'scott' , 'tiger' , $dbstr ); //如果去掉最后一个参数或者为“ ”,默认连接本机 $stmt = oci_parse( $conn , "select * from mono" ); oci_execute( $stmt ); $nrows = oci_fetch_all( $stmt , $results ); if ( $nrows > 0) { echo "<table border=\"1\">\n" ; echo "<tr>\n" ; foreach ( $results as $key => $val ) { echo "<th>$key</th>\n" ; } echo "</tr>\n" ; for ( $i = 0; $i < $nrows ; $i ++) { echo "<tr>\n" ; foreach ( $results as $data ) { echo "<td>$data[$i]</td>\n" ; } echo "</tr>\n" ; } echo "</table>\n" ; } else { echo "no data found<br />\n" ; } echo " $nrows records selected<br />\n" ; oci_free_statement( $stmt ); oci_close( $conn ); ?> |
(参考网友的一点说明)
两种方式和oracle数据库建立链接
1.
2.
有的时候第一种方式不行,使用第二种,里面的几个参数分别是用户名、密码、oracle服务地址,其中orcl是服务名(但在我的机器上,后者无法访问)
另外提供一种简单的测试代码,相对而言,只是测试连接情况,更为方便:
|
<!doctype html> <html> <head> <meta http-equiv= "content-type" content= "text/html; charset=utf-8" > <title>php语句结束符</title> </head> <body> <?php $dbstr ="(description =(address = (protocol = tcp)(host =192.168.11.102)(port = 1521)) (connect_data = (server = dedicated) (service_name = orcl) (instance_name = orcl)))"; $dbconn =oci_connect( 'scott' , 'tiger' , $dbstr ); if ( $dbconn !=false) { echo "连接成功" . '<br/>' ; if (ocilogoff( $dbconn )==true) { echo "关闭连接成功!" . '<br/>' ; // } } else { echo "连接失败" . '<br/>' ; } ?> </body> </html> |
总结提示:
使你的php支持oracle,按照以下步骤即可:
1.安装php环境,找一下appserv或者xampp,一键安装,很方便
2.把php的ext目录下的php_oci8.dll拷到system32目录下
3.修改php.ini文件中的配置,去掉 ;extention = php_oci8.dll,去掉前面的分号
4.重启apache
注意:
1.有时候你并不会注意到的一点失误会浪费很多时间,我还要提醒的是,请记得打开oracle的服务监听!!
2.请记得作为服务端的pc机,要关闭防火墙!!
3.apache的配置文件同样重要,修改httpd.conf文件,deny——>allow
|
<directory /> options followsymlinks allowoverride none order deny,allow # deny from all allow from all #允许所有访问 satisfy all </directory> <directory /> ... ... # require local options indexes followsymlinks # onlineoffline tag - don't remove order deny,allow allow from all # require local </directory> |
4.上文中一直提示的sid 或者说oracle服务器名称什么的真的好难懂,我是直接用了配置文件中所显示的名称“orcl”,这个在你安装软件时,会有一个服务名称的提醒,自己默认的orcl而已,估计些其他的名称也是可以的。网上介绍的很乱
如果不知道怎么操作,查看学习文档是最正确的选择,希望能帮到你。
有的时候第一种方式不行,使用第二种,里面的几个参数分别是用户名、密码、oracle服务地址,其中orcl是服务名。
|
# require local |
希望本文所述对大家php程序设计有所帮助。
原文链接:https://blog.csdn.net/u011415782/article/details/50240643
- phpstudy创建网站教程(使用phpstudy中域名管理菜单创建本地站点图文)
- phpfpm优化方法(php-fpm超时时间设置request_terminate_timeout资源问题分析)
- php加密平台(PHP7实现和CryptoJS的AES加密方式互通示例AES-128-ECB加密)
- php代码最可靠的加密方式(php DES加密算法实例分析)
- php去水印方法(PHP开发的文字水印,缩略图,图片水印实现类与用法示例)
- php如何定时执行某项(php解决crontab定时任务不能写入文件问题的方法分析)
- php如何调用类(php创建类并调用的实例方法)
- php商城支付接口(php实现银联商务公众号+服务窗支付的示例代码)
- 如何解决php跨域问题(php简单检测404页面的方法示例)
- apache2.4支持php5.5吗(WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置)
- php守护进程(什么是PHP7中的孤儿进程与僵尸进程)
- centos安装php5.6(Centos7 Yum安装PHP7.2流程教程详解)
- thinkphp前后端配合(thinkPHP+LayUI 流加载实现功能)
- dedecms5.7使用教程(dedecms v5.7提示php.ini register_globals must is Off错误的解决方法)
- phpredis高级用法(PHP Redis扩展无法加载的问题解决方法)
- thinkphp返回json(thinkphp5框架实现数据库读取的数据转换成json格式示例)
- 菲律宾特产(菲律宾特产最值得买回国)
- 越南特产(越南特产首饰)
- TVB负评王连续挑战警察角色《使徒行者3》中将饰演卧底(TVB负评王连续挑战警察角色使徒行者3中将饰演卧底)
- 《精英律师》剧照首曝光,实力演员飙戏,演绎律政职场百态(精英律师剧照首曝光)
- 靳东领衔打造高精职场 新丽出品《精英律师》曝定妆照(靳东领衔打造高精职场)
- 靳东新剧《精英律师》定档,众星云集,这剧可追(靳东新剧精英律师定档)
热门推荐
- php7.4类型属性实例详解(PHP 7.4中使用预加载的方法详解)
- ih5如何点击按钮跳转至网页(HTML5跳转小程序wx-open-launch-weapp的示例代码)
- css sprites介绍
- 宝塔面板如何搭建内网网站(宝塔面板搭建云服务器优化教程)
- python的多线程比多进程效率高(Python中单线程、多线程和多进程的效率对比实验实例)
- typescript获取属性名(TypeScript 中如何限制对象键名的取值范围)
- vue3.0零基础入门(快速掌握Vue3.0中如何上手Vuex状态管理)
- docker部署redis集群查看版本(docker下的 redis 之持久化存储详解)
- python中的多线程详解(python多线程抽象编程模型详解)
- react常用组件及作用(React中的Context应用场景分析)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9