VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • 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了。

PHP远程连接oracle

2、第二步:然后wampserver运行后,将php>php extentions中将php_oci8打上勾

【其他的集成环境其实也是可以的,比如phpStudy,我们可以直接从php扩展的选项里打勾对应的】。

PHP远程连接oracle

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 默认为本机):

  1. (DESCRIPTION = 
  2.  (ADDRESS_LIST = 
  3.   (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.198)(PORT = 1521)) 
  4.  ) 
  5.  (CONNECT_DATA = 
  6.   (SERVICE_NAME = orcl) 
  7.  ) 

4、第四步:检测oci8是否配置成功

①.一般情况下,打开localhost即能显示 phpinfo.php界面,里面即为 php 信息。可采用 “Ctrl+F”搜索“oci”,查看是否有对应的oci模块,当然有一点php基础的完全可以直接访问自己编写的文件,记得里面加入“echo phpinfo();”即可。

②.不要高兴太早,走到这一步,至少我是查不到的对应信息的,这时可以按照网上的一些建议,把php的ext目录下的php_oci8.dll拷到system32目录下

③.最后建议重启服务,最好是重启电脑(我在测试时发现,重启服务没用,有一次是无意中 刷新出了oci扩展,所以如果操作方法没错,我建议进行重启.)

二.代码测试远程连接 orcal 数据库(建议可用自己的oracle客户端试着是否能连接对方的服务端,以保证操作的成功率)

  1. <?php 
  2. /** 
  3.  * Created by PhpStorm. 
  4.  * User: Administrator 
  5.  * Date: 2015/12/7 
  6.  * Time: 16:25 
  7.  */ 
  8. echo 'ff'
  9. //进行连接数据库的参数配置 
  10. $dbstr ="(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.11.198)(PORT = 1521)) 
  11. (CONNECT_DATA = 
  12. (SERVER = DEDICATED) 
  13. (SERVICE_NAME = orcl) 
  14. (INSTANCE_NAME = orcl)))"; 
  15. //phpinfo(); 
  16. $conn = oci_connect('scott','tiger',$dbstr);//如果去掉最后一个参数或者为“ ”,默认连接本机 
  17. $stmt = oci_parse($conn"select * from mono"); 
  18. oci_execute($stmt); 
  19. $nrows = oci_fetch_all($stmt$results); 
  20. if ($nrows > 0) { 
  21. echo "<table border=\"1\">\n"
  22. echo "<tr>\n"
  23. foreach ($results as $key => $val) { 
  24. echo "<th>$key</th>\n"
  25. echo "</tr>\n"
  26. for ($i = 0; $i < $nrows$i++) { 
  27. echo "<tr>\n"
  28. foreach ($results as $data) { 
  29. echo "<td>$data[$i]</td>\n"
  30. echo "</tr>\n"
  31. echo "</table>\n"
  32. else { 
  33. echo "No data found<br />\n"
  34. echo " $nrows Records Selected<br />\n"
  35. oci_free_statement($stmt); 
  36. oci_close($conn); 
  37. ?> 

(参考网友的一点说明)

两种方式和oracle数据库建立链接,代码如下:

  1. $conn = oci_connect('username','password',"(DEscriptION=(ADDRESS=(PROTOCOL =TCP)(HOST=192.168.1.198)(PORT = 1521))(CONNECT_DATA =(SID=orcl)))"); 

代码如下:

$conn = oci_connect('username','password','192.168.1.198/orcl');

有的时候第一种方式不行,使用第二种,里面的几个参数分别是用户名、密码、oracle服务地址,其中orcl是服务名(但在我的机器上,后者无法访问)

另外提供一种简单的测试代码,相对而言,只是测试连接情况,更为方便:

  1. <!DOCTYPE HTML> 
  2. <html> 
  3. <head> 
  4.   <meta http-equiv="Content-Type" content="text/html; charset=utf-8"
  5.   <title>php语句结束符</title> 
  6. </head> 
  7. <body> 
  8. <?php 
  9. $dbstr ="(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.11.102)(PORT = 1521)) 
  10. (CONNECT_DATA = 
  11. (SERVER = DEDICATED) 
  12. (SERVICE_NAME = orcl) 
  13. (INSTANCE_NAME = orcl)))"; 
  14. $dbconn=oci_connect('scott','tiger',$dbstr); 
  15. if($dbconn!=false) 
  16.   echo "连接成功".'<br/>'
  17.   if(OCILogOff($dbconn)==true) 
  18.   { 
  19.     echo "关闭连接成功!".'<br/>';// 
  20.   } 
  21. else 
  22.   echo "连接失败".'<br/>'
  23. ?> 
  24. </body> 
  25. </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

  1. <Directory /> 
  2.   Options FollowSymLinks 
  3.   AllowOverride None 
  4.   Order deny,allow 
  5. #  Deny from all 
  6.   Allow from all 
  7. #允许所有访问 
  8.   Satisfy all 
  9. </Directory> 
  10. <Directory /> 
  11. ... 
  12. ... 
  13.  #  Require local 
  14. Options Indexes FollowSymLinks 
  15. #  onlineoffline tag - don't remove 
  16.   Order Deny,Allow 
  17.   Allow from all 
  18.  #  Require local 
  19. </Directory> 

4.上文中一直提示的SID 或者说oracle服务器名称什么的真的好难懂,我是直接用了配置文件中所显示的名称“orcl”,这个在你安装软件时,会有一个服务名称的提醒,自己默认的orcl而已,估计些其他的名称也是可以的。网上介绍的很乱

如果不知道怎么操作,查看学习文档是最正确的选择,希望能帮到你。

有的时候第一种方式不行,使用第二种,里面的几个参数分别是用户名、密码、oracle服务地址,其中orcl是服务名。

#  Require local

 

出处:http://www.phpfensi.com/php/20211116/18657.html


相关教程