PHP使用Oracle数据库.docx

上传人:b****9 文档编号:25560211 上传时间:2023-06-09 格式:DOCX 页数:11 大小:20.31KB
下载 相关 举报
PHP使用Oracle数据库.docx_第1页
第1页 / 共11页
PHP使用Oracle数据库.docx_第2页
第2页 / 共11页
PHP使用Oracle数据库.docx_第3页
第3页 / 共11页
PHP使用Oracle数据库.docx_第4页
第4页 / 共11页
PHP使用Oracle数据库.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

PHP使用Oracle数据库.docx

《PHP使用Oracle数据库.docx》由会员分享,可在线阅读,更多相关《PHP使用Oracle数据库.docx(11页珍藏版)》请在冰豆网上搜索。

PHP使用Oracle数据库.docx

PHP使用Oracle数据库

PHP使用Oracle数据库

  本站整理  网络搜集  2008-05-07  点击:

639  我要评论

oracle|数据|数据库

-

【摘要】HP提供了2大类API(应用程序接口)来操作Oracle数据库。

一个是标准的Oracle处理函数(ORA)另一个是Oracle8调用接口函数(OCI8).后者只能在Oracle7或8版本上使用。

由于OCI8提供了很多优化选项,因此只要有可能就应该采用OCI8接口。

在php3.0以上版本中,php内置了几乎目前所有的数据库处理函数,包括Oracle;在本文中我们通过一个实例来介绍了如何使用这些函数来操作Oracle数据库。

PHP提供了2大类API(应用程序接口)来操作Oracle数据库。

一个是标准的Oracle处理函数(ORA)另一个是Oracle8调用接口函数(OCI8).后者只能在Oracle7或8版本上使用。

由于OCI8提供了很多优化选项,因此只要有可能就应该采用OCI8接口。

这里我们分别用这二种函数集进行了演示。

首先本文的前提假设你已经装好了Oracle数据库环境和PHP开发环境. 如果不懂也没多大关系,网上有很多相关的好文章可以参考。

第一步:

创建一个实验用的数据库

这个问题你可以请你的数据库管理员或参考Oracle用户手册处理,这里不再多讲

用ORA建立数据表

即使你已经创建好了数据表,也请看看本段文字。

它可以告诉你如何用PHP+SQL的技术操作Oracle

在本例中我们创建了一个用于存放个人email的数据表

相关PHP代码:

PutEnv("ORACLE_SID=ORASID");

$connection=Ora_Logon("username","password");

if($connection==false){

 echoOra_ErrorCode($connection).":

".Ora_Error($connection)."";

 exit;

}  

$cursor=Ora_Open($connection);

if($cursor==false){

 echoOra_ErrorCode($connection).":

".Ora_Error($connection)."";

 exit;

}  

$query="createtableemail_info".

      "(fullnamevarchar(255),email_addressvarchar(255))";

$result=Ora_Parse($cursor,$query);

if($result==false){

 echoOra_ErrorCode($cursor).":

".Ora_Error($cursor)."";

 exit;

}

$result=Ora_Exec($cursor);

if($result==false){

 echoOra_ErrorCode($cursor).":

".Ora_Error($cursor)."";

 exit;

}

Ora_Commit($connection);

Ora_Close($cursor);

Ora_Logoff($connection);

?

为了处理Oracle数据库,我们首先要和Oracle建立一个联结。

语法是Ora_Logon(user,password),返回一个connectID.. 

提醒:

在此之前我们还必须设置环境变量:

ORACLE_SID的值.

现在,我们可以通过该联结的ID对Oracle进行交互式操作了。

数据表名字就叫email_info吧。

该表由2个域组成,一个存储个人全名,(如:

晓月)一个存储email地址如(xiaoyue@)

还需要一个游标Ora_Open. 该游标常常用来枚举数据。

我们用Ora_Parse或Ora_Exec查询Oracle的结果集. Ora_Parse效验SQL语法正确性而Ora_Exec则执行相应的SQL语句. 如果这一切都正常运行,那么我们就运行Ora_Commit来确认.

CreateATableUsingOCI

下面我们将建立一个email个人信息簿。

这次采用OCI8API指令

相关PHP代码:

php

PutEnv("ORACLE_SID=ORASID");

$connection=OCILogon("username","password");

if($connection==false){

  echoOCIError($connection)."

";

  exit;

}  

$query="createtableemail_info".

       "(fullnamevarchar(255),email_addressvarchar(255))";

$cursor=OCIParse($connection,$query);

if($cursor==false){

  echoOCIError($cursor)."

";

  exit;

}

$result=OCIExecute($cursor);

if($result==false){

  echoOCIError($cursor)."

";

  exit;

}

OCICommit($connection);

OCILogoff($connection);

?

>

我们可以看到这2段代码语法几乎都一样,区别仅仅函数名字不同;其次,在OCI8中我们不需要专门运行打开游标的指令,在调用OCIParse系统就自动返回了一个游标ID.

利用ORA向数据表'email_info'输入数据

当用户浏览这段脚本时,显示一个由姓名、email输入域组成的表单;当用户添好数据点击提交时,脚本程序将把这姓名、email保存到'email_info'数据表中。

相关PHP代码:

php

if($submit=="click"){

  //Thesubmitbuttonwasclicked!

  //Gettheinputforfullnameandemailthenstoreitinthedatabase.

  PutEnv("ORACLE_SID=ORASID");

  $connection=Ora_Logon("username","password");

  if($connection==false){

    echoOra_ErrorCode($connection).":

".Ora_Error($connection)."

";

    exit;

  }

$cursor=Ora_Open($connection);

if($cursor==false){

  echoOra_ErrorCode($connection).":

".Ora_Error($connection)."

";

  exit;

}  

  $query="insertintoemail_infovalues('$fullname','$email')";

  $result=Ora_Parse($cursor,$query);

  if($result==false){

    echoOra_ErrorCode($cursor).":

".Ora_Error($cursor)."

";

    exit;

  }

  $result=Ora_Exec($cursor);

  if($result==false){

    echoOra_ErrorCode($cursor).":

".Ora_Error($cursor)."

";

    exit;

  }

  Ora_Commit($connection);

  Ora_Close($cursor);

  Ora_Logoff($connection);

}

else{

  echo'

    

    <FORMaction=insert.phpmethod=post>

    请输入姓名

    <INPUTname=fullname></INPUT>

    请输入Email地址

    <INPUTname=email></INPUT>

    <INPUTname=submittype=submitvalue=click></INPUT>    

    </FORM>

    

  ';

}

?

>

对了,这段脚本必须存为insert.php,因为在调用的页面中指定insert.php为表单处理程序

浏览效果:

窗体顶端

请输入姓名

请输入Email地址

窗体底端

利用OCI向数据表'email_info'输入数据

同上,只不过用OCI来写

相关PHP代码:

php

if($submit=="click"){

  //Thesubmitbuttonwasclicked!

  //Gettheinputforfullnameandemailthenstoreitinthedatabase.

  PutEnv("ORACLE_SID=ORASID");

  $connection=OCILogon("username","password");

  if($connection==false){

    echoOCIError($connection)."

";

    exit;

  }

  $query="insertintoemail_infovalues('$fullname','$email')";

  $cursor=OCIParse($connection,$query);

  if($cursor==false){

    echoOCIError($cursor)."

";

    exit;

  }

  $result=OCIExecute($cursor);

  if($result==false){

    echoOCIError($cursor)."

";

    exit;

  }

  OCICommit($connection);

  OCILogoff($connection);

}

else{

  echo'

    

    <FORMaction=insert.phpmethod=post>

    请输入姓名

    <INPUTname=fullname></INPUT>

    请输入Email地址

    <INPUTname=email></INPUT>

    <INPUTname=submittype=submitvalue=click></INPUT>    

    </FORM>

    

  ';

}

?

>

对了,这段脚本必须存为insert.php,因为在调用的页面中指定insert.php为表单处理程序

浏览效果:

窗体顶端

请输入姓名

请输入Email地址

窗体底端

利用ORA列出全部数据表'email_info'中的数据

下面,我们将逐条读出数据库的内容,并以html表格形式显示'email_info'数据表中的数据

相关PHP代码:

php

PutEnv("ORACLE_SID=ORASID");

$connection=Ora_Logon("username","password");

if($connection==false){

  echoOra_ErrorCode($connection).":

".Ora_Error($connection)."

";

  exit;

}

$cursor=Ora_Open($connection);

if($cursor==false){

  echoOra_ErrorCode($connection).":

".Ora_Error($connection)."

";

  exit;

}  

$query="select*fromemail_info";

$result=Ora_Parse($cursor,$query);

if($result==false){

  echoOra_ErrorCode($cursor).":

".Ora_Error($cursor)."

";

  exit;

}

$result=Ora_Exec($cursor);

if($result==false){

  echoOra_ErrorCode($cursor).":

".Ora_Error($cursor)."

";

  exit;

}

echo"

";

echo"FullName

EmailAddress";

while(Ora_Fetch_Into($cursor,&$values)){

  $name=$values[0];

  $email=$values[1];

  echo"

$name

$email";

}

echo"

";

Ora_Close($cursor);

Ora_Logoff($connection);

?

>

程序运行的浏览效果如下所示:

 

姓名

Email地址

春花

springflower@

秋月

autumnmoon@

...

...

 

利用OCI列出全部数据表'email_info'中的数据

同上,只不过用OCI来写

相关PHP代码:

php

PutEnv("ORACLE_SID=ORASID");

$connection=OCILogon("username","password");

if($connection==false){

  echoOCIError($connection)."

";

  exit;

}

$query="select*fromemail_info";

$cursor=OCIParse($connection,$query);

if($cursor==false){

  echoOCIError($cursor)."

";

  exit;

}

$result=OCIExecute($cursor);

if($result==false){

  echoOCIError($cursor)."

";

  exit;

}

echo"

";

echo"FullName

EmailAddress";

while(OCIFetchInto($cursor,$values)){

  $name=$values[0];

  $email=$values[1];

  echo"

$name

$email";

}

echo"

";

OCILogoff($connection);

?

>

程序运行的浏览效果如下所示:

 

姓名

Email地址

春花

springflower@

秋月

autumnmoon@

...

...

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1