以下の例のストアドプロシージャ match_animal は、
3 つのさまざまなパラメータを受け取ります。
-
最初の動物の名前を入力として受け取る
入力 (IN) パラメータ。
-
2 番目の動物の名前を入力として受け取り、その名前に一致する動物が
データベースに存在する場合に文字列 TRUE
を返す、入出力 (INOUT) パラメータ。
-
指定した 2 匹の動物の合計体重を返す、出力 (OUT) パラメータ。
さらにこのストアドプロシージャは結果セットを返します。その内容は、
最初のパラメータで指定した動物から 2 番目のパラメータで指定した動物までの
動物の一覧をアルファベット順に並べたものとなります。
<?php
$sql = 'CALL match_animal(?, ?, ?)';
$conn = db2_connect($database, $user, $password);
$stmt = db2_prepare($conn, $sql);
$name = "Peaches";
$second_name = "Rickety Ride";
$weight = 0;
db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
db2_bind_param($stmt, 2, "second_name", DB2_PARAM_INOUT);
db2_bind_param($stmt, 3, "weight", DB2_PARAM_OUT);
print "コール前のバインド変数の値:\n";
print " 1: {$name} 2: {$second_name} 3: {$weight}\n\n";
if (db2_execute($stmt)) {
print "コール後のバインド変数の値:\n";
print " 1: {$name} 2: {$second_name} 3: {$weight}\n\n";
print "結果:\n";
while ($row = db2_fetch_array($stmt)) {
print " {$row[0]}, {$row[1]}, {$row[2]}\n";
}
}
?>
コール前のバインド変数の値:
1: Peaches 2: Rickety Ride 3: 0
コール後のバインド変数の値:
1: Peaches 2: TRUE 3: 22
結果:
Peaches, dog, 12.3
Pook, cat, 3.2
Rickety Ride, goat, 9.7