以下的文章主要是介绍如何用PHP来调用Oracle存储过程,以及在用PHP来调用Oracle存储过程的是实际应用代码的示例,以下就是文章的相关内容的主要秒素,望你在浏览之后,会有所收获。
建立一个test表
create table test (
id number(16) not null,
name varchar2(30) not null,
primary key (id)
);
- 1.
- 2.
- 3.
- 4.
- 5.
插入一条数据
insert into test values (5, ’php_book’);
- 1.
建立一个Oracle存储过程
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;
/
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
php代码:
<?php
- 1.
建立数据库连接
$user = "scott";
- 1.
数据库用户名
$password = "tiger";
- 1.
密码
$conn_str = "tnsname";
- 1.
连接串
(cstr : connection_string)
$remote = true
- 1.
- 2.
是否远程连接
if ($remote) {
$conn = ocilogon($user, $password, $conn_str);
}
else {
$conn = ocilogon($user, $password);
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
设定绑定
$id = 5;
- 1.
准备用以绑定的php变量 id
$name = "";
- 1.
准备用以绑定的php变量 name
/** 调用Oracle存储过程的sql语句(sql_sp : sql_storeprocedure)
* 语法:
* begin 存储过程名([[:]参数]); end;
* 加上冒号表示该参数是一个位置
**/
$sql_sp = "begin proc_test(:id, :name); end;";
parse
$stmt = ociparse($conn, $sql_sp);
- 1.
- 2.
- 3.
- 4.
- 5.
执行绑定
ocibindbyname($stmt, ":id", $id, 16);
- 1.
参数说明:绑定php变量$id到位置:id,并设定绑定长度16位
ocibindbyname($stmt, ":name", $name, 30);
- 1.
execute
ociexecute($stmt);
- 1.
结果
echo "name is : $name<br>";
?>
- 1.
- 2.
上述的相关内容就是对用PHP来调用Oracle存储过程的描述,希望会给你带来一些帮助在此方面。
【编辑推荐】