用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 相关文章推荐
在IIS上安装PHP4.0正式版
Oct 09 PHP
smarty中先strip_tags过滤html标签后truncate截取文章运用
Oct 25 PHP
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
May 09 PHP
PHP中如何实现常用邮箱的基本判断
Jan 07 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
May 10 PHP
PHP中使用json数据格式定义字面量对象的方法
Aug 20 PHP
php实现对两个数组进行减法操作的方法
Apr 17 PHP
PHP页面间传递值和保持值的方法
Aug 24 PHP
Laravel用户授权系统的使用方法示例
Sep 16 PHP
PHP中有关长整数的一些操作教程
Sep 11 PHP
laravel框架 api自定义全局异常处理方法
Oct 11 PHP
PHP如何使用cURL实现Get和Post请求
Jul 11 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
第十三节--对象串行化
2006/11/16 PHP
PHP加速 eAccelerator配置和使用指南
2009/06/05 PHP
php中explode与split的区别介绍
2012/10/03 PHP
PHP内置过滤器FILTER使用实例
2014/06/25 PHP
PHP中的print_r 与 var_dump 输出数组
2016/06/13 PHP
用PHP做了一个领取优惠券活动的示例代码
2019/07/05 PHP
javascript instanceof 与typeof使用说明
2010/01/11 Javascript
js change,propertychange,input事件小议
2011/12/20 Javascript
jquery 插件学习(五)
2012/08/06 Javascript
JavaScript字符串对象replace方法实例(用于字符串替换或正则替换)
2014/10/16 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
2016/03/25 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
2016/07/07 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
微信小程序 教程之注册页面
2016/10/17 Javascript
详解vue父子模版嵌套案例
2017/03/04 Javascript
Vue.use()在new Vue() 之前使用的原因浅析
2019/08/26 Javascript
layui按条件隐藏表格列的实例
2019/09/19 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
2020/11/12 Javascript
[01:03:38]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS CIS
2014/05/22 DOTA
Python获取apk文件URL地址实例
2013/11/01 Python
Python获取当前时间的方法
2014/01/14 Python
Saltstack快速入门简单汇总
2016/03/01 Python
python中numpy.zeros(np.zeros)的使用方法
2017/11/07 Python
pytorch获取模型某一层参数名及参数值方式
2019/12/30 Python
Pygame的程序开始示例代码
2020/05/07 Python
Python txt文件常用读写操作代码实例
2020/08/03 Python
css3使用animation属性实现炫酷效果(推荐)
2020/02/04 HTML / CSS
Otticanet英国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/02/10 全球购物
酒店执行总经理岗位职责
2013/12/15 职场文书
销售主管的自我评价分享
2014/01/03 职场文书
医学生职业规划范文
2014/01/05 职场文书
岳父生日宴会答谢词
2014/01/13 职场文书
美德好少年事迹材料
2014/01/19 职场文书
工程售后服务承诺书
2014/05/21 职场文书
2015应届毕业生求职信范文
2015/03/20 职场文书
2015年老干部工作总结
2015/04/23 职场文书