用PHP调用Oracle存储过程

致唔逝去的青春

致唔逝去的青春

2016-01-29 15:01

用PHP调用Oracle存储过程,用PHP调用Oracle存储过程
 

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";            //密码
$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;";

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/php/)

//Parse
$stmt = OCIParse($conn, $sql_sp);

//执行绑定
OCIBindByName($stmt, ":id", $id, 16);           //参数说明:绑定php变量$id到位置:id,并设定绑定长度16位
OCIBindByName($stmt, ":name", $name, 30);

//Execute
OCIExecute($stmt);

//结果
echo "name is : $name<br";

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/php/)

?


 

 
展开更多 50%)
分享

猜你喜欢

用PHP调用Oracle存储过程

PHP
用PHP调用Oracle存储过程

ASP调用oracle存储过程

ASP
ASP调用oracle存储过程

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

PHP怎样调用MSSQL的存储过程

PHP
PHP怎样调用MSSQL的存储过程

asp调用存储过程

Web开发
asp调用存储过程

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

ASP调用ORACLE存储过程并返回结果集

ASP
ASP调用ORACLE存储过程并返回结果集

php调用mysql存储过程和函数的方法

PHP
php调用mysql存储过程和函数的方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

PHP的一个完整SMTP类(解决邮件服务器需要验证时的问题)

PHP的一个完整SMTP类(解决邮件服务器需要验证时的问题)

《军临城下》高手攻略之个人竞技

《军临城下》高手攻略之个人竞技
下拉加载更多内容 ↓