这里有新鲜出炉的 PHP 教程,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
这篇文章主要介绍了 php 访问 oracle 存储过程实例详解的相关资料, 这里附有实例代码,帮助大家实现这样的功能,需要的朋友可以参考下
php 访问 oracle 存储过程实例详解
比如我的本地 Oracle 数据库有一个 package, 里面有一个存储过程:
- create or replace package PKG_TRANS_REL is
- -- Author : test
- -- Created :
- -- Purpose : test
- -- Public type declarations
- PKG_NAME varchar2(20) := 'PKG_TRANS_REL';
- --存储过程,测试用
- procedure pro_GC_withdraw(in_merch_no in varchar2,
- in_withdraw_amt in number,
- out_result out number,
- out_errmsg out varchar2);
- end PKG_TRANS_REL;
包名是 PKG_TRANS_REL,存储过程是 pro_GC_withdraw,这个存储过程有四个参数,两个入参,两个出参。
在 PHP 中通过 pdo 调用示例:
- $this - >_pdo = new PDO(PDO_DB_DNS, PDO_DB_USER, PDO_DB_PASSWORD);
- $call = "CALL PKG_TRANS_REL.pro_GC_withdraw(?,?,?,?)";
- try {
- $stmt = $this - >_pdo - >prepare($call);
- $stmt - >bindParam(1, $merch_no);
- $stmt - >bindParam(2, $amount, PDO: :PARAM_INT);
- $stmt - >bindParam(3, $result, PDO: :PARAM_INT, 4);
- $stmt - >bindParam(4, $error_msg, PDO: :PARAM_STR, 64);
- $stmt - >execute();
- } catch(PDOException $e) {
- $msg = 'SQL:'.$e - >getMessage();
- $msg = iconv('GBK', 'UTF-8', $msg);
- user_dump('SQL:'.$msg);
- return false;
- }
- ...
bindParam 第三个参数默认是 PDO::PARAM_STR,如果是其它类型就要指明
入参传值比较简单,出参稍微复杂些,要指明长度。
来源: http://www.phperz.com/article/17/0810/340724.html