我的問題基本上圍繞着我需要/寧願使用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並不熟悉,但查看錶的模式可能有助於顯示可能導致問題的任何不尋常的字段......想知道是否有字段類型不是它從數據庫返回到您的代碼... –