Ich versuche, eine sql Server gespeicherte Prozedur von PHP auszuführen. Gespeicherte Prozedur gibt einen Ausgabewert zurück. Ich möchte diesen Wert in PHP auf der Webseite anzeigen.SQL Server gespeicherte Prozedur mit Ausgabeparameter von PHP aufrufen
Alles funktioniert gut, außer der Ausgangswert gibt 0 in php .. aber die Zeile wird perfekt eingefügt. der Ausgabewert zeigt als 0. genervt an, wo ich den Fehler gemacht habe. Unten ist mein PHP-Code
require('db.php');
$billno = "REF0001";
$retsno = 0.0;
$sp_name = "{call testinsert(?, ?)}";
$params = array(
array($billno, SQLSRV_PARAM_IN),
array($retsno, SQLSRV_PARAM_OUT)
);
/* Execute the query. */
$stmt3 = sqlsrv_query($conn, $sp_name, $params);
if($stmt3 === false)
{
echo "Error in executing statement 3.\n";
die(print_r(sqlsrv_errors(), true));
}
echo "Inserted Retuern Sno for ".$billno." is ". $retsno. ".";
und meine gespeicherten Prozedur ist
create procedure testinsert(@bill_no VARCHAR(20),@RetSno INT OUTPUT)
as
begin
insert into testable values(@bill_no,GETDATE())
set @RetSno = @@IDENTITY
return
end
Diese Variablen werden nicht geändert, so, wenn Sie sie echo Sie ihre Anfangswerte erhalten (REF0001, 0,0). Sie müssen den Variablen die aktualisierten Werte zuweisen. Oder fehlt mir etwas? –
Bitte versuchen Sie es, wenn Sie die richtige Antwort erhalten, wenn Sie die '@@ IDENTITY' durch eine normale Nummer ersetzen. – Andy
Andy, ich habe das auch versucht. Ich habe einfach einen vagen Wert aus der gespeicherten Prozedur zurückgegeben. immer noch 0 zurück – srinivasan