Хранимая процедура 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 "Values of bound parameters _before_ CALL:\n";
print " 1: {$name} 2: {$second_name} 3: {$weight}\n\n";
if (db2_execute($stmt)) {
print "Values of bound parameters _after_ CALL:\n";
print " 1: {$name} 2: {$second_name} 3: {$weight}\n\n";
print "Results:\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