PHPでOracle格納プロセスを呼び出す方法
1912 ワード
しかし、記憶プロセスを使用すると、少なくとも2つの最も明白な利点がある:速度と効率.保存プロセスを使用する速度は明らかに速い.効率的に、一連のsql操作を一回適用するなら、phpとoracleを往復する必要があります.むしろ、このアプリケーションを直接データベースの方に置いて往復回数を減らすほうが効率的です.しかし、インターネットの応用においては、速度が極めて重要なので、記憶過程を使う必要があります.私も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コード
//
$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
";
?>