PDO & MS SQL récupération d'un paramètre de sortie d'une procédure stockée
Bonjour tout le monde,
J'aurais besoin de vôtre aide, si vous le voulez bien, pour élucider mon mystère:
J'ai une procédure stocker simple avec un paramètre en sortie dans ma base de données SQL SERVER
Code:
1 2 3 4 5 6 7
| DROP PROCEDURE [dbo].[PROC_TEST]
GO
CREATE PROCEDURE [dbo].[PROC_TEST] @pProfile nvarchar(30) OUTPUT
AS
BEGIN
SET @pProfile = 'profile'
END |
Je cherche l’exécuter dans mon programme en php et récupérer donc la variable, je le fait de cette manière:
Code:
1 2 3 4 5 6 7 8 9 10
| <?php
require_once '_db.php';
$stmt = $db->prepare('CALL PROC_TEST(?)');
$stmt->bindParam(1, $value, PDO::PARAM_STR, 30);
$stmt->execute();
echo "value contient :".$value; //Résultat attendue: "value contient :profile";
?> |
Et c'est là que ça coince, en sortie, à la place d'un jolie "profile" voici ce que j'obtient:
value contient :½uteôM)@½ption½€½ption½
Alors je me doute qu'il y a quelque chose qui ne vas pas dans mon code pourtant pas bien épais mais quoi?
J'ai essayé plusieurs choses que j'ai trouvé dans divers forum:
- $stmt->nextRowset();
- $out = $stmt->fetch();
- Faire un EXEC ou EXECUTE à la place de CALL
- Mettre OUTPUT à côté du paramètre
Mais rien ne fonctionne j'ai un résultat à peu près toujours différent mais tout aussi bizarre avec des caractères spéciaux.
Je vous remercie d'avance et je m'en remets à vous.