我的问题基本上围绕着我需要/宁愿使用PHP的sqlsrv访问sql-server 2000数据库。我已经在使用sql server 2005来运行所有查询的项目,并且切换到类似ODBC的PHP驱动程序,现在是一个非常头痛的问题。因此,现在我已将原始SQL Server 2000数据库和2005安装在同一台计算机上,并且已在两台服务器之间创建了一个链接服务器。在Management Studio Express中对其中一个表运行简单查询来测试它。SQLSRV与链接服务器
现在,我在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在链接服务器上运行查询是否存在问题?
我对PHP并不熟悉,但查看表的模式可能有助于显示可能导致问题的任何不寻常的字段......想知道是否有字段类型不是它从数据库返回到您的代码... –