El procedimiento de registro concorde_animal en el siguiente ejemplo
acepta tres diferentes parámetros:
-
un parámetro de entrada (IN) que acepta el nombre del primer animal en
entrada
-
un parámetro de entrada-salida (INOUT) que acepta el nombre del segundo
animal en entrada y devuelve un chaîne de caractères TRUE
si un
animal en la base de datos coincide con este nombre
-
un parámetro de salida (OUT) que devuelve la suma de los pesos de los dos
animales identificados
Además, el procedimiento de registro devuelve un conjunto de resultados
que contiene los animales listados en orden alfabético comenzando con
el animal correspondiente al valor de entrada del primer parámetro y
terminando con el animal correspondiente al valor de entrada del segundo
parámetro.
<?php
$sql = 'CALL concorde_animal(?, ?, ?)';
$conn = db2_connect($database, $user, $password);
$stmt = db2_prepare($conn, $sql);
$nom = "Peaches";
$second_nom = "Rickety Ride";
$poids = 0;
db2_bind_param($stmt, 1, "nom", DB2_PARAM_IN);
db2_bind_param($stmt, 2, "second_nom", DB2_PARAM_INOUT);
db2_bind_param($stmt, 3, "poids", DB2_PARAM_OUT);
print "Valores de los parámetros _antes_ de CALL :\n";
print " 1: {$nom} 2: {$second_nom} 3: {$poids}\n\n";
if (db2_execute($stmt)) {
print "Valores de los parámetros _después_ de CALL :\n";
print " 1: {$nom} 2: {$second_nom} 3: {$poids}\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 _antes_ de CALL :
1: Peaches 2: Rickety Ride 3: 0
Valores de los parámetros _después_ de CALL :
1: Peaches 2: TRUE 3: 22
Resultados :
Peaches, chien, 12.3
Pook, chat, 3.2
Rickety Ride, chèvre, 9.7