La procédure stockée match_animal dans l'exemple suivant accepte trois
paramètres différents :
-
un paramètre d'entrée (IN) qui accepte le nom du premier animal en
entrée
-
un paramètre d'entrée-sortie (INOUT) qui accepte le nom du second
animal en entrée et retourne la chaîne
TRUE si un
animal de la base de données correspond à ce nom
-
un paramètre de sortie (OUT) qui retourne la somme des poids des deux
animaux identifiés
De plus, la procédure stockée retourne un jeu de résultats contenant les
animaux listés par ordre alphabétique, en commençant par l'animal
correspondant à la valeur d'entrée du premier paramètre et en terminant
par l'animal correspondant à la valeur d'entrée du second paramètre.
<?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 "Valeurs des paramètres associés _avant_ CALL :\n";
print " 1: {$name} 2: {$second_name} 3: {$weight}\n\n";
if (db2_execute($stmt)) {
print "Valeurs des paramètres associés _après_ CALL :\n";
print " 1: {$name} 2: {$second_name} 3: {$weight}\n\n";
print "Résultats :\n";
while ($row = db2_fetch_array($stmt)) {
print " {$row[0]}, {$row[1]}, {$row[2]}\n";
}
}
?>
L'exemple ci-dessus va afficher :
Valeurs des paramètres associés _avant_ CALL :
1: Peaches 2: Rickety Ride 3: 0
Valeurs des paramètres associés _après_ CALL :
1: Peaches 2: TRUE 3: 22
Résultats :
Peaches, dog, 12.3
Pook, cat, 3.2
Rickety Ride, goat, 9.7