O procedimento armazenado match_animal no exemplo a seguir aceita
três parâmetros diferentes:
-
um parâmetro de entrada (IN) que aceita o nome do primeiro animal como
entrada
-
um parâmetro de entrada-saída (INOUT) que aceita o nome do segundo
animal como entrada e retorna a string TRUE
se um
animal no banco de dados corresponder a ele
-
um parâmetro de saída (OUT) que retorna a soma do peso dos
dois animais identificados
Além disso, o procedimento armazenado retorna um conjunto de resultados consistindo de
animais listados em ordem alfabética começando no animal correspondente
ao valor de entrada do primeiro parâmetro e terminando no animal
correspondente ao valor de entrada do segundo parâmetro.
<?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 "Valores dos parâmetros vinculados _antes_ de CALL:\n";
print " 1: {$name} 2: {$second_name} 3: {$weight}\n\n";
if (db2_execute($stmt)) {
print "Valores dos parâmetros vinculados _after_ CALL:\n";
print " 1: {$name} 2: {$second_name} 3: {$weight}\n\n";
print "Resultados:\n";
while ($row = db2_fetch_array($stmt)) {
print " {$row[0]}, {$row[1]}, {$row[2]}\n";
}
}
?>
O exemplo acima produzirá:
Valores dos parâmetros vinculados _antes_ de CALL:
1: Peaches 2: Rickety Ride 3: 0
Valores dos parâmetros vinculados _depois_ de CALL:
1: Peaches 2: TRUE 3: 22
Resultados:
Peaches, dog, 12.3
Pook, cat, 3.2
Rickety Ride, goat, 9.7