Сервер SQL — PHP MSSQL — хранимая процедура sqlsrv без ошибок и без ответа

Я создал хранимую процедуру Microsoft SQL, и я вызываю ее из кода PHP ниже. Я не получаю никаких ошибок, но я также не получаю никакого вывода. Я просмотрел все, но я все еще не совсем уверен, как сделать оператор WHILE для получения переменных, которые мне нужны из sql … Я надеюсь, что кто-то может взглянуть на код php ниже (и код sql ниже) чтобы увидеть, чего мне не хватает. Да, и когда я выполняю хранимую процедуру через SQL, она работает нормально и возвращает ожидаемые данные. Спасибо!

    <?php

$serverName = "PRATHIBA-PC\SQL2008";
$connectionInfo = array( "Database"=>"TMS", "UID"=>"sa", "PWD"=>"asset12345" );
//$connectionInfo = array( "Database"=>"TMS");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{
echo "Could not connect.\n";
die( print_r( sqlsrv_errors(), true));
}/* Define the Transact-SQL query. Use question marks (?) in
place of  the parameters to be passed to the stored procedure
*/

$tsql_callSP = "{call Getstudentname( 1 )}";

$studentid = '1';$params = array(
array($studentid, SQLSRV_PARAM_IN)
);

/* Execute the query. */
$stmt3 = sqlsrv_query( $conn, $tsql_callSP, $params);

if( $stmt3 === false ) {
echo "Error in executing statement 3.\n";
die( print_r( sqlsrv_errors(), true)); }

/* Display the value of the output parameters. */
while (sqlsrv_fetch_object($stmt3)) {
// SET PARAMETERS - SET TERMS
//echo $term;
}

/*Free the statement and connection resources. */while ($obj=sqlsrv_fetch_object($stmt3)) {
// SET PARAMETERS - SET TERMS
echo $obj->term;}

sqlsrv_free_stmt( $stmt3);
?>

Это код хранимой процедуры SQL Server

USE [TMS]
GO

DECLARE @return_value int

EXEC    @return_value = [dbo].[Getstudentname]

SELECT  'Return Value' = @return_value

GO

Когда я запускаю этот код, я получаю вывод:

exec Getstudentname 1;

это мой вывод на сервере sql

1 Вивек Джохари vivek@abc.com

Пожалуйста, помогите мне, ребята ..

1

Решение

Вы можете попробовать использовать вопросительный знак в качестве заполнителя для параметра, например так:

$tsql_callSP = "{call Getstudentname(?)}";

Не уверены, поможет ли это?

0

Другие решения

Других решений пока нет …