bonjour
j'essaie d'appeler une procédure stockée avec un paramètre soit en entrée ou en sortie, n'importe.
J'ai réussi à appeler une procédure stockée qui ne copie pas de valeur mais quand il y a paramètre je n'ai pas le lien entre variable PHP et Mysql
Voici mes codes :

Pour un paramètre en entrée :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
CREATE PROCEDURE `bdtest`.`paraEntree` ( nb varchar(20))
BEGIN
 
insert into tabletest values(null,nb);
 
END
Ou pour sortie :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
CREATE PROCEDURE `bdtest`.`paraSortie` (out nb int)
BEGIN
 
select max(id) into nb from tableTest;
 
END

Et le code php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
try {
   $dbh = new PDO('mysql:host=localhost;dbname=bdtest', 'utBase', 'hwQTMMvCEa35aeHF');
 
// pour entrée
$stmt = $dbh->prepare("CALL paraEntree(?)");
$stmt->bindParam(1, $nb, PDO::PARAM_STR,20);
$value = 'rrr';
$stmt->execute();
 
// pour sortie
$stmt = $dbh->prepare("CALL paraSortie(?)");
$stmt->bindParam(1, $return_value, PDO::PARAM_STR, 20);
// Appel de la procédure stockée
$stmt->execute();
print "La procédure a retourné : $return_value\n";
 
   $dbh = null;
} 
catch (PDOException $e) {
echo $e->errorInfo() ;
}
?>
Il y a donc problème dans le passage de paramètre car sans paramètre c'est ok et les tests des procédures direct sur mysql sont ok !

help
merci