Holen Sie sich den Rückgabewert von SQL Stored Procedure mit PHP

Also habe ich ein PHP-Skript, das eine gespeicherte Prozedur verwendet, um mit meiner SQL-database zu interagieren. Die gespeicherte Prozedur funktioniert ganz gut, das Problem ist, ich weiß nicht, wie man meine PHP zum Echo der Rückgabewert aus der gespeicherten Prozedur zu bekommen. Die gespeicherte Prozedur aktiviert grundsätzlich ein Konto mit einem Aktivierungsschlüssel und setzt den Benutzernamen und das Passwort ein.

Grundsätzlich heißt es: "Wenn der aktivierte Aktivierungsschlüssel noch keinen Benutzernamen hat, setzen Sie ihn auf den angegebenen und RETURN 1, wenn er bereits einen Benutzernamen RETURN 2 hat und wenn der Aktivierungsschlüssel nicht existiert RETURN 3". Es funktioniert perfekt in SQL und gibt sogar den richtigen Rückgabewert. Nun, wie bekomme ich meine PHP zu Echo, dass? Ich habe folgendes ausprobiert:

$link = sqlsrv_connect($myserver, array('Database' => $myDB, 'UID' => $myUser, 'PWD' => $myPass)); if($link === FALSE) { die('Could not connect: ' . sqlsrv_errors(SQLSRV_ERR_ALL)); } $key = $_REQUEST['key']; $username = $_REQUEST['username']; $password = $_REQUEST['password']; $query = "EXEC Activate_Account"; $query .=" @key = "; $query .= $key; $query .=", @user = "; $query .= $username; $query .=", @pass = "; $query .= $password; $result = sqlsrv_query($link, $query); while($row = sqlsrv_fetch_array($result)) { echo $row[0]; } sqlsrv_close($link); 

und

 while($row = sqlsrv_fetch_array($result)) { echo $row['Return Value']; } 

Keiner von ihnen hallt etwas.

So geben Sie einen Wert mit einer gespeicherten Prozedur zurück:

Beispielsweise:

SQL:

 CREATE DEFINER=`user`@`localhost` PROCEDURE `ProcedureName`(IN `Input_Value` INT, OUT `Out_val` INT) LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT '' BEGIN // Your SQL Code SET Out_val= Your Value; SELECT Out_val; END 

PHP-Code:

 $insert = "CALL ProcedureName(:Input_Value, @Out_val)"; $bdd = new PDO('mysql:host=localhost;dbname=db-name', 'user', 'password'); $stmt = $bdd->prepare($insert); $stmt->bindParam(':Input_Value', $an_input_value, PDO::PARAM_STR); $stmt->execute(); $tabResultat = $stmt->fetch(); $Out_val = $tabResultat['Out_val']; var_dump($Out_val);