• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php 调用Oracle的存储过程详解

php 搞代码 3年前 (2022-01-22) 64次浏览 已收录 0个评论

php程序访问数据库,完全可以使用存储过程,有人认为使用存储过程便于维护。不过仁者见仁,智者见智,在这个问题上,偶认为使用存储过程意味着必须要dba和开发人员更紧密配合,如果其中一方更变,则显然难以维护。

但是使用存储过程至少有两个最明显的优点:速度和效率。使用存储过程的速度显然更快。在效率上,如果应用一次需要做一系列sql操作,则需要往返于php与oracle,不如把该应用直接放到数据库方以减少往返次数,增加效率。但是在internet应用上,速度是极度重要的,所以很有必要使用存储过程。偶也是使用php调用存储过程不久,做了下面这个列子。

//建立一个TEST表CREATE TABLE TEST (  ID        NUMBER(16)        NOT NULL,  NAME      VARCHAR2(30)      NOT NULL,  PRIMARY KEY (ID));//插入一条数据INSERT INTO TEST VALUES (5, 'PHP_BOOK');//建立一个存储过程CREATE OR REPLACE PROCEDURE PROC_TEST (  p_id IN OUT NUMBER,  p_name OUT VARCHAR2) AS BEGIN  SELECT NAME INTO p_name    FROM TEST    WHERE ID = 5;END PROC_TEST;/

PHP代码:

<?php//建立数据库连接$user = "scott";                //数据库用户名$password = "tiger&qu<p style="color:transparent">2本文来源gao!daima.com搞$代!码网</p><span>搞代gaodaima码</span>ot;;            //密码$conn_str = "tnsname";          //连接串(cstr : Connection_STRing)$remote = true                  //是否远程连接if ($remote) {  $conn = OCILogon($user, $password, $conn_str);}else {  $conn = OCILogon($user, $password);}//设定绑定$id = 5;                        //准备用以绑定的php变量 id$name = "";                     //准备用以绑定的php变量 name/** 调用存储过程的sql语句(sql_sp : SQL_StoreProcedure) *  语法: *      BEGIN 存储过程名([[:]参数]); END; *  加上冒号表示该参数是一个位置**/$sql_sp = "BEGIN PROC_TEST(:id, :name); END;";//Parse$stmt = OCIParse($conn, $sql_sp);//执行绑定OCIBindByName($stmt, ":id", $id, 16);           //参数说明:绑定php变量$id到位置:id,并设定绑定长度16位OCIBindByName($stmt, ":name", $name, 30);//ExecuteOCIExecute($stmt);//结果echo "name is : $name<br>";?>

以上就是php 调用Oracle的存储过程详解的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php 调用Oracle的存储过程详解
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址