用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 相关文章推荐
WHOIS类的修改版
Oct 09 PHP
PHP 数字左侧自动补0
Mar 31 PHP
PHP jQuery表单,带验证具体实现方法
Feb 15 PHP
php的ajax简单实例
Feb 27 PHP
PHP中key和current,next的联合运用实例分析
Mar 29 PHP
php rsa 加密,解密,签名,验签详解
Dec 06 PHP
PHP中file_put_contents追加和换行的实现方法
Apr 01 PHP
如何利用预加载优化Laravel Model查询详解
Aug 11 PHP
PHP实现模拟http请求的方法分析
Dec 20 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
Feb 18 PHP
Laravel框架源码解析之反射的使用详解
May 14 PHP
php字符串倒叙
Apr 01 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
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
PHP数据过滤的方法
2013/10/30 PHP
php中final关键字用法分析
2016/12/07 PHP
php实现的三个常用加密解密功能函数示例
2017/11/06 PHP
prototype1.4中文手册
2006/09/22 Javascript
jQuery 常见操作实现方式和常用函数方法总结
2011/05/06 Javascript
JQuery操作表格(隔行着色,高亮显示,筛选数据)
2012/02/23 Javascript
showModalDialog模态对话框的使用详解以及浏览器兼容
2014/01/11 Javascript
jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
2014/05/08 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
2016/03/03 Javascript
使用getBoundingClientRect方法实现简洁的sticky组件的方法
2016/03/22 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
JS实现的幻灯片切换显示效果
2016/09/07 Javascript
Angularjs 与 bower安装和使用详解
2017/05/11 Javascript
浅谈关于.vue文件中style的scoped属性
2017/08/19 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
2018/09/12 Javascript
Vue高版本中一些新特性的使用详解
2018/09/25 Javascript
搭建基于express框架运行环境的方法步骤
2018/11/15 Javascript
你不可不知的Vue.js列表渲染详解
2019/10/01 Javascript
JS JQuery获取data-*属性值方法解析
2020/09/01 jQuery
Vue 列表页带参数进详情页的操作(router-link)
2020/11/13 Javascript
解决Django的request.POST获取不到内容的问题
2018/05/28 Python
详解程序意外中断自动重启shell脚本(以Python为例)
2019/07/26 Python
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
英国最大的婴儿监视器网上商店:Baby Monitors Direct
2018/04/24 全球购物
Rodd & Gunn澳大利亚官网:新西兰男装品牌
2018/09/25 全球购物
javascript实现用户必须勾选协议实例讲解
2021/03/24 Javascript
中学老师的自我评价
2013/11/07 职场文书
说好普通话圆梦你我他演讲稿
2014/09/21 职场文书
三严三实对照检查材料
2014/09/22 职场文书
公安派出所所长四风问题个人对照检查材料
2014/10/04 职场文书
警察正风肃纪剖析材料
2014/10/16 职场文书
男方婚礼答谢词
2015/01/20 职场文书
请客吃饭开场白
2015/06/01 职场文书
【DOTA2】总决赛血虐~ XTREME GAMING vs MAGMA - OGA DOTA PIT 2022 CN
2022/04/02 DOTA