Bonjour,
j'essaie d'exécuter une procédure stockée via PDO tout comme l'exemple de php.net mais cela ne marche pas. J'ai lu quelque part que PDO avait du mal avec les procédures stockées...c'est le cas ?
Voici mon exemple à priori simple :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 delimiter | CREATE PROCEDURE test(OUT sortie varchar(20)) BEGIN SELECT 'Ici la sortie !!' INTO sortie; END |
Sous cmd, pas de soucis ma ps marche.
Via php :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 try{ $connexion = new PDO('mysql:host=localhost;dbname=xxx', 'root', '', array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION)); }catch(PDOException $e){ echo 'foiré'; } $stmt = $connexion->prepare("CALL test(?)"); $stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000); $stmt->execute(); echo "La procédure a retourné : $return_value\n";
J'ai essayé différentes choses, je récupère toujours une erreur...Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1414 OUT or INOUT argument 1 for routine boursier.test is not a variable or NEW pseudo-variable in BEFORE trigger' in C:\wamp\www\procedure\index.php:14 Stack trace: #0 C:\wamp\www\procedure\index.php(14): PDOStatement->execute() #1 {main} thrown in C:\wamp\www\procedure\index.php on line 14
Quelqu'un pourrait il me confirmer qu'on peut exécuter une ps via PDO ?
Merci![]()
Partager