【发布时间】:2015-04-11 01:48:59
【问题描述】:
我创建了一个 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 server 中的输出
1 维韦克·乔哈里 vivek@abc.com
请帮帮我..
【问题讨论】:
标签: php sql-server