我的问题基本上围绕着我需要/更喜欢使用 PHP 的 sqlsrv 来访问 sql-server 2000 数据库。我已经在使用 sql server 2005 运行所有查询并切换到类似 ODBC PHP 驱动程序之类的东西的项目上工作,现在将是一个非常令人头疼的问题。因此,现在我将原始 SQL Server 2000 数据库和 2005 安装在同一台计算机上,并在两者之间创建了一个链接服务器。在 Management Studio Express 中对其进行测试,只需对其中一个表运行一个简单的查询即可。
现在,我在 PHP 中使用 sqlsrv_query 使用完全相同的查询并遇到错误。我测试这个的 PHP 代码看起来像这样
$connectionOptions = array("UID"=>"user","PWD"=>"password");
$res = sqlsrv_connect("(local)\SQLExpress", $connectionOptions);
if(!$res) die("ERRORS : " . print_r(sqlsrv_errors()));
echo "SELECT * FROM [ServerName].DB.dbo.Table<br/>";
$res = sqlsrv_query($res,"SELECT * FROM [ServerName].DB.dbo.Table");
if($res===false){
die("ERRORS : " . print_r(sqlsrv_errors()));
}else{
var_dump($res);
$ary = sqlsrv_fetch_array($res);
}
var_dump($ary);
echo "<hr>";
var_dump(sqlsrv_errors());
这段代码的问题是 sqlsrv_query 的结果不返回 false 而是返回类型未知的资源(11)。所以在该结果上运行 fetch_array 告诉我一个无效的参数被传递给了 sqlsrv_fetch_array。我不确定此时该怎么做。通过 sqlsrv 在链接服务器上运行查询是否存在问题?