以下示例中的存储过程 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 "绑定参数的值(调用前):\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";
}
}
?>
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