尝试返回正在运行的sqlsrv_query函数调用的结果时,我收到一个奇怪的错误。
我已经设置:
function test($someinput, &$someoutput)
{
//set up $dbc and $dbcOptions
//generate tsql
$params = array();
$stmt = sqlsrv_query($dbc, $tsql, $params, $dbcOptions);
$someoutput = $stmt;
return $stmt;
}
$outputvar;
$results = test($inputvar, $outputvar);
//---ERROR being thrown here
$rows = sqlsrv_num_rows($results);
//$rows2 = sqlsrv_num_rows($outputvar);
//---ERROR being thrown here
在两行中(与我使用的无关),我的php-errors.log
文件中出现错误
PHP Warning: sqlsrv_num_rows(): 2 is not a valid ss_sqlsrv_stmt resource in
E:\inetpub\wwwroot\directory\searchtest.php on line 58
searchtest.php
是我正在处理的文件,第58行是我有错误产生代码的地方。
为什么我不能从这样的函数传递查询结果?
答案 0 :(得分:1)
答案 1 :(得分:0)
在我看来,您的SQL语句中有错误。
您可以在:{/ p>之后致电sqlsrv_errors
$stmt = sqlsrv_query($dbc, $tsql, $params, $dbcOptions);
if( $stmt === false ) {
if( ($errors = sqlsrv_errors() ) != null) {
foreach( $errors as $error ) {
echo "SQLSTATE: ".$error[ 'SQLSTATE']."<br />";
echo "code: ".$error[ 'code']."<br />";
echo "message: ".$error[ 'message']."<br />";
}
}
}
然后你应该找到错误。