PHP连接远程oracle

1、在php.ini中开启 extension=php_oci8.dll extension=php_oci8_11g.dll(去掉分号即可)

2、到http://www.oracle.com/technetwork/cn/topics/winsoft-085727.html下载对应的instantclient-basic-win32程序

      注意:instantclient-baseic选择32位还是64位要看运行的php是32位还是64位而定,而不是系统位数

3、下载后将你所下载的instantclient_11_2目录配置到系统环境变量中(D:\app\rtyrrty\instantclient_11_2)

4、重启apache用phpinfo便可看到oci8已开启

说明:oci_connect函数中host代表oracle的IP地址 port代表oracle端口号 sid代表你的实例名

   下例中AL32UTF8是表示你数据表中的字符集编码格式

         (通过“select * from V$NLS_PARAMETERS;”可查询到)

          查询结果中NLS_CHARACTERSET字段便表示你的oracle字符集格式 newcc 123456789表示用户名称及密码

 

测试代码:

 

  $conn = oci_connect('newcc','123456789',"(DEscriptION=(ADDRESS=(PROTOCOL =TCP)(HOST=192.168.0.222)(PORT = 1521))(CONNECT_DATA =(SID=orcl)))","AL32UTF8");
        if (!$conn){
            echo "连接失败!";
            exit();
        }
        $sql = "SELECT BH,XM,GYDWNAME,ZYXZNAME,ZFZTNAME FROM CRIMINAL_BASE_INFO WHERE ROWNUM<6";  
        $ora = oci_parse($conn,$sql);  //编译sql语句 
        if (!$ora){
            echo "预编译失败!";
            exit();
        }
        //执行
        if (oci_execute($ora)){
            
             while(($row = oci_fetch_assoc($ora)) != false)  //取回结果
            {
                 echo "<pre>";
                 echo $row["BH"]."&nbsp;".$row["XM"]."<br/>";
                 echo "</pre>";
             } 
        }else {
            echo "执行失败!";
        } 
        if (!(oci_free_statement($ora)))
            echo "释放失败!";
        if (!oci_close($conn))
            echo "关闭失败!";

 

posted @ 2017-01-11 09:40  Tester_ABX  阅读(3319)  评论(0编辑  收藏  举报