Après une recherche sur ce forum et sur la toile, j’ai l’impression qu’il y a un flou et beaucoup d’informations contradictoire sur les procédures stockées avec PHP.
J’ai déjà réalisé ce genre de travail mais avec un SGBD en MSSQL.
Code : Tout sélectionner
[…]
//On appel la procédure stockée
$stmt = mssql_init('AddAgence', $conn);
//On fait les binds
mssql_bind($stmt, "@Nom", $nom, SQLVARCHAR);
mssql_bind($stmt, "@fkAgence",$agencemere, SQLINT4);
//On injecte
$proc_result = mssql_execute($stmt);
// On exploite le résultat ici un seule valeur de retour
$row = mssql_fetch_row($proc_result)
[…]Par contre et c’est là que je suis étonné, ce n’est pas très clair avec un SGBD comme Mysql.
J’ai lu que pour utiliser une procédure stockée en PHP avec du Mysql, il fallait utiliser du mysqli ? Vrai ou faux ?
Dans ce cas et si j’ai bien compris, on doit faire comme ceci :
Code : Tout sélectionner
<?php
$link = mysqli_connect("localhost", $username, $password, $database);
$query = "CALL ps_chercher(ma, liste, de, param);";
$stmt = mysqli_prepare($link, $query);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $1, $2, $3, $4, $5);
while (mysqli_stmt_fetch($stmt)) {
printf ("%s - %s - %s - %s - %s<br>", $1, $2, $3, $4, $5);
}
mysqli_stmt_close($stmt);
mysqli_close($link);
?>Code : Tout sélectionner
<?php
$stmt = $dbh->prepare("CALL sp_returns_string(?)");
$stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000);
// Appel de la procédure stockée
$stmt->execute();
print "La procédure a retourné : $return_value\n";
?>Il y a t-il d'autres méthodes ?
D'avance, merci.
Amicalement,
Cerbère.