当前位置:编程学习 > > 正文

php连接oracle(PHP远程连接oracle数据库操作实现方法图文详解)

时间:2022-04-01 01:03:09类别:编程学习

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(PHP远程连接oracle数据库操作实现方法图文详解)

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

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

php连接oracle(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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • (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客户端试着是否能连接对方的服务端,以保证操作的成功率)

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • <?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.

  • 复制代码 代码如下:
  • $conn = oci_connect('username','password',"(description=(address=(protocol =tcp)(host=192.168.1.198)(port = 1521))(connect_data =(sid=orcl)))");
  • 2.

  • 复制代码 代码如下:
  • $conn = oci_connect('username','password','192.168.1.198/orcl');
  • 有的时候第一种方式不行,使用第二种,里面的几个参数分别是用户名、密码、oracle服务地址,其中orcl是服务名(但在我的机器上,后者无法访问)

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

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • <!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 

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • <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是服务名。

  • ?
  • 1
  • require local
  • 希望本文所述对大家php程序设计有所帮助。

    原文链接:https://blog.csdn.net/u011415782/article/details/50240643

    上一篇下一篇

    猜您喜欢

    热门推荐