以下示例中的 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