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打上勾。
2、安装的有Oracle客户端,并且在Oracle安装配置文件,tnsnames.ora文件,此文件路径是安装oracle的路径,比如我本机的是
F:\oracle\product\10.2.0\client_1\NETWORK\ADMIN ,所连的200数据库,其中的配置详情如下:
200 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.200)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = tongcard)
)
)
以下是使用PHP的OCI得到db的方法,与上面的tnsnames.ora文件非常类似:
$db = " (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = $host)(PORT = $port)) (CONNECT_DATA = (SID=$sid) (SERVER = DEDICATED) (SERVICE_NAME = $sname) ) )";
比照以上的两片代码可以发现:
CONNECT_DATA = (SERVICE_NAME = tongcard)
CONNECT_DATA = (SID=$sid)
service_name名为tongcard, sid就是service_name的值。
下面是一个例子,验证是否连接数据库成功,因为想以最快速度验证使用PHP的OCI连接数据库成功,所以没有写HTML页面,直接模拟了一个登录,将所需要的参数以变量形式传入。
<?php /* * To change this template, choose Tools | Templates * and open the template in the editor. */ //以下是变量(数据库连接的配置) $host = "192.168.1.200"; $port = "1521"; $sid = "tongcard"; $sname = "tongcard"; $db_user = "tmp2120723"; $db_pwd = "ceshi"; //以下是模拟登录,输入的参数为用户名和密码。此处为了简便没有写HTML页面, //将user_pass作为输入的值传入,为了验证连接数据库是否成功。 $userName ='admin'; $user_pass ='123456'; $user_id = '01040010001.admin'; if (!($conn = connect_oracle2($host, $port, $sid, $sname, $db_user, $db_pwd))) {//是否得到数据库链接 echo "connot connect the Oracle database"; exit; } $qry = "select * from tmp2120723.admin_users t where t.user_id=:userId and t.login_name = :loginName"; $sql = oci_parse($conn, $qry);//查询转换 oci_bind_by_name($sql, ":loginName", $userName, 32);//查询语句$sql,条件所需要的参数loginName,值为$userName,长度为32.长度可以不写 oci_bind_by_name($sql, ":userId",$user_id );//$sql查询语句,所需要的参数userId,值 为$user_id变量的值, echo "<br/>"; oci_execute($sql);//执行sql $row = array();//查询都是返回array() while ($result = oci_fetch_array($sql, OCI_ASSOC)) {//使用oci_fetch_array函数遍历 $row[] = $result;//转成数组的结果集 foreach ($result as $key => $value) { if ($key == 'LOGIN_PASSWD') { if (md5($user_pass) == $value) {//密码MD5后的值=从数据库表中查询出来的value echo "login success<br/>"; } else { echo "login failed <br/>"; } } } } //连接数据库方法 function connect_oracle2($host, $port, $sid, $sname, $db_user, $db_pwd){ $db = " (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = $host)(PORT = $port)) (CONNECT_DATA = (SID=$sid) (SERVER = DEDICATED) (SERVICE_NAME = $sname) ) )"; $dbconn = ocilogon($db_user, $db_pwd, $db); return $dbconn; } ?>
运行该文件,我是将此文件放入到wamp的D:\wamp\www\里面,其实这只是一个文件,并不是一个项目,最初为了验证如果不将此文件直接放在wamp的www,而是放在一个文件夹里,该如何访问,因此增加了一个testing的文件夹,将此文件放入到testing目录下,我的文件名叫TestOne.php
准备进绪,开始访问:
http://localhost/testing/TestOne.php
这里值得一提的是,PHP的访问,在默认为8080端口时,不需要在localhost后面加:8080,假如没有testing文件夹,则直接是http://localhost/TestOne.php
访问结果:
分享到:
相关推荐
OCI连接oracle数据库(c++)实现 已经封装好的c++实现的Oci
C编写的OCI连接Oracle数据库.pdf
delphi通过oci连接oracle, 速度超快,效率超高,使用超简单。 10物超所值。
用C写的linux下通过OCI函数连接oracle数据库的示例程序,可参考链接:linux下用C编写的OCI连接Oracle数据库程序,Oracle常用的OCI函数:http://blog.csdn.net/seven407/archive/2009/11/24/4864430.aspx
oci连接oracle,封装好了的一个类,很实用。
通过HOOK Navicat for Oracle得到OCI函数调用的次序和参数,然后在VC开发环境下写个Demo,在Demo中直接使用OCI连接操作Oracle数据库。
Oracle OCI 应用,VC++中如何用ORACLE OCI实现Oracle数据库的连接和对表的访问
通过HOOK Navicat for Oracle数据库管理工具,得到OCI函数调用的次序和参数。 在VC开发环境下写个Demo,在Demo中直接使用OCI连接操作Oracle数据库。
https://blog.csdn.net/lililuni/article/details/85004173,详细参考博客。
使用OCI访问Oracle数据库。包含基本的数据库连接、访问、更新等操作
这是oracle11g的oci包,直接在plsql中指定该文件即可正常连接oracle数据库,如果发现没有表,切换当前用户和所有用户即可
C编写的OCI连接Oracle数据库
C++实现的OCI操作Oracle数据库类,基于ocilib-4.3.3-windows.zip实现,OCI的资源可以直接到官网下载。 C++实现的OCI操作Oracle数据库类,基于ocilib-4.3.3-windows.zip实现,OCI的资源可以直接到官网下载。
使用方法:安装好Navicat for Oracle——将下载的OCIDLL解压到安装目录,或者只复制自己数据库对应版本的OCI.DLL到安装目录。然后运行Navicat for Oracle,在菜单栏依次展开“工具”——“选项”——其他——OCI——...
Navicat Premium 连接oracle ORA-28547:connection to server failed,probable Oracle Net admin error错误,在Navicat安装目录中创建instanrclient_11_2目录,将下载的压缩文件解压到instanrclient_11_2目录中,...
支持几乎所有版本oracle的oci文件,具体使用方法请百度 navicat oracle oci 文件,配置完记得重启navicat
然后运行Navicat for Oracle,在菜单栏依次展开“工具”——“选项”——其他——OCI——OCI.DLL指定到刚复制过去的OCI.DLL位置。然后确定,退出Navicat再次运行并配置好连接,这样即可连接数据库。
OCI操作oracle数据库[收集].pdf