El procedimiento almacenado match_animal del siguiente ejemplo acepta
tres parámetros:
-
un parámetro (IN) de entrada que acepta el nombre del primer animal como
entrada
-
un parámetro (INOUT) de entrada-salida que acepta el nombre del segundo
animal como entrada y devuelve el string TRUE
si coincidiera
algún animal de la base de datos
-
un parámetro (OUT) de salida que devuelve la suma del peso de los dos
animales identificados
Además, el procedimiento almacenado devuelve el juego de resultados que corresponde
a la lista de animales en orden alfabética comenzando por el animal
del valor de entrada del primer parámetro, y terminando en el animal
correspondiente al valor de entrada del 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 de los parámetros vinculados _antes_ de la llamada:\n";
print " 1: {$name} 2: {$second_name} 3: {$weight}\n\n";
if (db2_execute($stmt)) {
print "Valores de los parámetros vinculados _tras_ la llamada:\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";
}
}
?>
El resultado del ejemplo sería:
Valores de los parámetros vinculados _antes_ de la llamada:
1: Peaches 2: Rickety Ride 3: 0
Valores de los parámetros vinculados _tras_ la llamada:
1: Peaches 2: TRUE 3: 22
Resultados:
Peaches, dog, 12.3
Pook, cat, 3.2
Rickety Ride, goat, 9.7