最新更新 sitemap 网站制作设计本站搜索
网页设计
国外网站 韩国网站 个人主页 手提袋设计 CSS 网页特效 平面设计 网站设计 Flash CMS技巧 服装网站 php教程 photoshop 画册 服务器选用 数据库 Office
虚拟主机 域名注册 云主机 网页设计 客服QQ:8208442
当前位置:首页 > 编程开发 > php教程

PHP的Oracle存储过程

日期:08-01    来源:中国设计秀    作者:cnwebshow.com

PHP程序访问Oracle数据库,完全可以使用Oracle存储过程,PHP使用Oracle存储过程至少有两个最明显的优点:速度和效率。a8S中国设计秀

PHP程序访问数据库,完全可以使用存储过程,a8S中国设计秀
有人认为使用存储过程便于维护a8S中国设计秀
不过仁者见仁,智者见智,在这个问题上,偶认为使用存储过程意味着必须要DBA和开发人员更紧密配合a8S中国设计秀
如果其中一方更变,则显然难以维护。a8S中国设计秀
但是使用存储过程至少有两个最明显的优点:速度和效率。a8S中国设计秀
使用存储过程的速度显然更快。a8S中国设计秀
在效率上,如果应用一次需要做一系列SQL操作,则需要往返于PHP与ORACLE,不如把该应用直接放到数据库方以减少往返次数,增加效率。a8S中国设计秀
但是在INTERNET应用上,速度是极度重要的,所以很有必要使用存储过程。a8S中国设计秀
偶也是使用PHP调用存储过程不久,做了下面这个列子。a8S中国设计秀
a8S中国设计秀
这是偶第一次写文章(以前都是发水贴),希望大家多多斧正!a8S中国设计秀
a8S中国设计秀
Oracle存储过程代码:a8S中国设计秀

//建立一个TEST表a8S中国设计秀
CREATE TABLE TEST (a8S中国设计秀
ID NUMBER(16) NOT NULL,a8S中国设计秀
NAME VARCHAR2(30) NOT NULL,a8S中国设计秀
PRIMARY KEY (ID)a8S中国设计秀
);a8S中国设计秀
a8S中国设计秀
//插入一条数据a8S中国设计秀
INSERT INTO TEST VALUES (5, 'PHP_BOOK');a8S中国设计秀
a8S中国设计秀
//建立一个存储过程a8S中国设计秀
CREATE OR REPLACE PROCEDURE PROC_TEST (a8S中国设计秀
p_id IN OUT NUMBER,a8S中国设计秀
p_name OUT VARCHAR2a8S中国设计秀
) ASa8S中国设计秀
BEGINa8S中国设计秀
SELECT NAME INTO p_namea8S中国设计秀
FROM TESTa8S中国设计秀
WHERE ID = 5;a8S中国设计秀
END PROC_TEST;a8S中国设计秀
 a8S中国设计秀

PHP代码:a8S中国设计秀

<?phpa8S中国设计秀
a8S中国设计秀
//建立数据库连接a8S中国设计秀
$user = "scott"; //数据库用户名a8S中国设计秀
$password = "tiger"; //密码a8S中国设计秀
$conn_str = "tnsname"; //连接串(cstr : Connection_STRing)a8S中国设计秀
$remote = true //是否远程连接a8S中国设计秀
if ($remote) {a8S中国设计秀
$conn = OCILogon($user, $password, $conn_str);a8S中国设计秀
}a8S中国设计秀
else {a8S中国设计秀
$conn = OCILogon($user, $password);a8S中国设计秀
}a8S中国设计秀
a8S中国设计秀
//设定绑定a8S中国设计秀
$id = 5; //准备用以绑定的php变量 ida8S中国设计秀
$name = ""; //准备用以绑定的php变量 namea8S中国设计秀
a8S中国设计秀
/** 调用存储过程的sql语句(sql_sp : SQL_StoreProcedure)a8S中国设计秀
* 语法:a8S中国设计秀
* BEGIN 存储过程名([[:]参数]); END;a8S中国设计秀
* 加上冒号表示该参数是一个位置a8S中国设计秀
**/a8S中国设计秀
$sql_sp = "BEGIN PROC_TEST(:id, :name); END;";a8S中国设计秀
a8S中国设计秀
//Parsea8S中国设计秀
$stmt = OCIParse($conn, $sql_sp);a8S中国设计秀
a8S中国设计秀
//执行绑定a8S中国设计秀
OCIBindByName($stmt, ":id", $id, 16); //参数说明:绑定php变量$id到位置:id,并设定绑定长度16位a8S中国设计秀
OCIBindByName($stmt, ":name", $name, 30);a8S中国设计秀
a8S中国设计秀
//Executea8S中国设计秀
OCIExecute($stmt);a8S中国设计秀
a8S中国设计秀
//结果a8S中国设计秀
echo "name is : $name<br>";a8S中国设计秀
?>a8S中国设计秀
 a8S中国设计秀

从开始学习PHP就来喜悦国际村,好几个月了,学到不少东西,自己写了个例子希望有点用处。a8S中国设计秀

本文引用地址:/bc/article_58200.html
网站地图 | 关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明