我想从存储在远程MSSQL服务器上的过程中提取数据。 PHP documentation在sqlsrv_fetch($stmt)
中表示,$stmt
表示由sqlsrv_query()
或sqlsrv_execute()
返回的资源。sqlsrv_fetch与MS SQL服务器sqlsrv_execute
这里是我的代码片段 - >
$sql = "exec USP_ABC_ABC_REPORT 'Apple','06/01/2014','10/29/2014','H','A'";
$segment ='apple';
$start_date='06/01/2014';
$end_date ='10/29/2014';
$something2 ='H';
$something3 ='A';
$abc = sqlsrv_prepare($conn, $sql, array(&$segment, &$start_date, &$end_date, &$something2, &$something3));
if($abcd = sqlsrv_execute($abc)){
if(sqlsrv_fetch($abcd)){
$id = sqlsrv_get_field($abcd, 0);
echo $id;
} else{
echo "fetch failed";
}
}
该片段显示了一个错误:
sqlsrv_fetch() expects parameter 1 to be resource, boolean given.
sqlsrv_fetch()如果我使用sqlsrv_query(正常工作),而不是sqlsrv_execute /准备。可能的原因是sqlsrv_query()返回混合输出而不是布尔值。
任何人都可以帮助使用sqlsrv_fetch执行。
是的我的准备声明工作正常。所以我已经删除了我的execute语句,并使用了sqlsrv_fetch($ abc),正如你所提到的那样。这会显示“提取失败”(上面的代码中的else语句)。这是由于远程服务器中的错误吗?另外,为什么官方的PHP sqlsrv_fetch()帖子没有提及我们可以使用prepare资源作为参数? –