用PHP调用Oracle存储过程的方法


Posted in PHP onSeptember 12, 2008

但是使用存储过程至少有两个最明显的优点:速度和效率。使用存储过程的速度显然更快。在效率上,如果应用一次需要做一系列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;"; 

//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>"; 

?>
PHP 相关文章推荐
PHP输出控制功能在简繁体转换中的应用
Oct 09 PHP
一个程序下载的管理程序(一)
Oct 09 PHP
?繁体转换的class
Oct 09 PHP
IP攻击升级,程序改进以对付新的攻击
Nov 23 PHP
ThinkPHP实现将本地文件打包成zip下载
Jun 26 PHP
PHP动态输出JavaScript代码实例
Feb 12 PHP
php5.3后静态绑定用法详解
Nov 11 PHP
浅谈ThinkPHP中initialize和construct的区别
Apr 01 PHP
详解php与ethereum客户端交互
Apr 28 PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
Mar 01 PHP
php设计模式之工厂模式用法经典实例分析
Sep 20 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
Dec 25 PHP
php5新改动之短标记启用方法
Sep 11 #PHP
php5 pdo新改动加载注意事项
Sep 11 #PHP
PHP常用函数小技巧
Sep 11 #PHP
PHP下10件你也许并不了解的事情
Sep 11 #PHP
PHPMailer邮件类利用smtp.163.com发送邮件方法
Sep 11 #PHP
fleaphp下不确定的多条件查询的巧妙解决方法
Sep 11 #PHP
Zend Guard一些常见问题解答
Sep 11 #PHP
You might like
一个php作的文本留言本的例子(三)
2006/10/09 PHP
php 常用类汇总 推荐收藏
2010/05/13 PHP
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
33道php常见面试题及答案
2015/07/06 PHP
PHP数据对象PDO操作技巧小结
2016/09/27 PHP
PHP获取二叉树镜像的方法
2018/01/17 PHP
PHP预定义超全局数组变量小结
2018/08/20 PHP
PHP asXML()函数讲解
2019/02/03 PHP
PHP Include文件实例讲解
2019/02/15 PHP
javascript事件问题
2009/09/05 Javascript
Jquery动态进行图片缩略的原理及实现
2013/08/13 Javascript
JsRender for object语法简介
2014/10/31 Javascript
JavaScript中getUTCMinutes()方法的使用详解
2015/06/10 Javascript
js动态生成Html元素实现Post操作(createElement)
2015/09/14 Javascript
js运动应用实例解析
2015/12/28 Javascript
knockoutjs动态加载外部的file作为component中的template数据源的实现方法
2016/09/01 Javascript
JavaScript正则表达式exec/g实现多次循环用法示例
2017/01/17 Javascript
详解使用uni-app开发微信小程序之登录模块
2019/05/09 Javascript
ECharts地图绘制和钻取简易接口详解
2019/07/12 Javascript
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
[02:26]2016国际邀请赛8月3日开战 中国军团出征西雅图
2016/08/02 DOTA
跟老齐学Python之变量和参数
2014/10/10 Python
Python中用max()方法求最大值的介绍
2015/05/15 Python
Python机器学习logistic回归代码解析
2018/01/17 Python
python人民币小写转大写辅助工具
2018/06/20 Python
python实现彩票系统
2020/06/28 Python
在PyCharm中实现关闭一个死循环程序的方法
2018/11/29 Python
在python中利用最小二乘拟合二次抛物线函数的方法
2018/12/29 Python
Django中使用Whoosh进行全文检索的方法
2019/03/31 Python
python实现美团订单推送到测试环境,提供便利操作示例
2019/08/09 Python
浅析Python 多行匹配模式
2020/07/24 Python
优衣库美国官网:UNIQLO美国
2018/04/14 全球购物
英国户外服装品牌:Craghoppers
2019/04/25 全球购物
教师求职推荐信范文
2013/11/20 职场文书
苏州园林导游词
2015/02/03 职场文书
Java Socket实现Redis客户端的详细说明
2021/05/26 Redis