下列範例中的預存程序 match_animal 接受三個不同的參數
-
一個輸入 (IN) 參數,接受第一個動物的名稱作為輸入
-
一個輸入-輸出 (INOUT) 參數,接受第二個動物的名稱作為輸入,如果資料庫中的動物符合該名稱,則傳回字串 TRUE
-
一個輸出 (OUT) 參數,傳回兩個已識別動物的權重總和
此外,預存程序會傳回一個結果集,其中包含以字母順序排列的動物,從與第一個參數輸入值對應的動物開始,到與第二個參數輸入值對應的動物結束。
<?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 "綁定參數於 CALL 執行 _之前_ 的值:\n";
print " 1: {$name} 2: {$second_name} 3: {$weight}\n\n";
if (db2_execute($stmt)) {
print "綁定參數於 CALL 執行 _之後_ 的值:\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";
}
}
?>
Values of bound parameters _before_ CALL:
1: Peaches 2: Rickety Ride 3: 0
Values of bound parameters _after_ CALL:
1: Peaches 2: TRUE 3: 22
Results:
Peaches, dog, 12.3
Pook, cat, 3.2
Rickety Ride, goat, 9.7