不使用OCI8接口如何连接PHP和Oracle


随着网站规模的扩大,MySql显然不能满足需求,在许多网站都 
采用大型数据库Oracle的情况下,如何使用PHP来访问Oracle变的越发重要了。 
我从我编写的一个简单iERP系统谈我自己是如何做的,在PHP官方手册里也有说明。 
一般情况下或者说大多数人都是用Oracle8 Call-Interface(OCI8)来连接数据库, 
我这里介绍不使用OCI8接口而直接使用PHP的Oracle函数来连接数据库并处理数据。

注意: 
php.ini配置中要去掉 ;extension=php_oracle.dll 前的分号即 
extension=php_oracle.dll

1,连接数据库

使用ora_logon()或者ora_plogon()来连接上数据库 
ora_plogon功能与ora_logon类似,只不过ora_plogon开启与 Oracle 的长期连结 
直至web服务停止

$handle = ora_plogon("system@localhost", "manager") or die; 
"system@localhost" 其中localhost是oracle SID 名称,system是用户名称,manager是用户密码

2,打开游标 
$cursor = ora_open($handle);

3,分析语法并执行指令 
$query = "select count(*) from area where areacode = '$addcode'"; 
ora_parse($cursor, $query) or die; 
ora_exec($cursor);

4,获取数据 
if(ora_fetch($cursor)) 
$datacount = ora_getcolumn($cursor, 0); 
5,关闭游标 
ora_close($cursor);

当然了你有可能执行的是delete或者insert语句不存在获取数据的步骤如: 
INSERT:(插入)

$handle = ora_plogon("system@localhost", "manager") or die; 
ora_commiton($handle); 
$cursor = ora_open($handle); 
$query = "insert into area(areacode,areaname) values('$addcode','$addname')"; 
ora_parse($cursor, $query) or die; 
ora_exec($cursor); 
ora_close($cursor);

DELETE:(删除)

$handle = ora_plogon("system@localhost", "manager") or die; 
$cursor = ora_open($handle); 
ora_commiton($handle); 
$query = "delete from area where areacode in ('222','444')" ; 
ora_parse($cursor, $query) or die; 
ora_exec($cursor); 
ora_close($cursor);

 

posted on 2013-11-06 20:55  为人民服务  阅读(235)  评论(0编辑  收藏  举报