我最近将 PHP 应用程序从 mssql 切换到 sqlsrv,并希望继续使用几个自定义函数来处理我的所有 SQL 请求。我收到错误
警告:sqlsrv_fetch_array():2 不是有效的 ss_sqlsrv_stmt 资源在...
当使用以下函数处理所有 sqlsrv_query() 调用时:
<?php
function tko_query($sql)
{
//Check for db connection
$serverName = "server\sqlexpress";
$connectionInfo = array( "Database"=>"db", "UID"=>"uid", "PWD"=>"pwd");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}
return sqlsrv_query($conn,$sql, array(), array('Scrollable' => 'buffered'));
}
$sql = "SELECT * FROM jobs";
$stmt = tko_query($sql);
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) )
{
echo $row['name']."<br />";
}
sqlsrv_free_stmt( $stmt);
?>
您应该将
$conn
变量声明为全局变量,或者尝试在 tko_query
函数体内获取数据。当 tko_query
结束时,连接将关闭,您无法获取数据..