2012-05-25 77 views
3

我試圖通過PHP運行一個非常簡單的MSSQL更新語句,但我得到一個錯誤說*「無效的參數傳遞給sqlsrv_query。」 *MSSQL和PHP:「一個無效的參數傳遞給sqlsrv_query。」

這裏的connection class我使用的,和最相關是查詢功能:

function query($query) { 
    $result = sqlsrv_query($query) or die(print_r(sqlsrv_errors(), true)); 
} 

最後,這裏是我使用的嘗試執行語句代碼:

$db = new mssqlClass(); 
$conn = $db->connect(); 

$SQL = "UPDATE table SET Title = 'Test' where ID = 1" 
$SQL = $db->query($SQL); 

如果任何人有任何建議,我會很感激,我想這是con。的問題nection class但我不確定。謝謝!

(編輯)在嘗試編輯所有內容以便在此張貼時,我不知何故錯過了我的聲明中的'where',唉!抱歉。不用說查詢很好,並且在複製到SQL Server Studio Manager時執行沒有任何問題。乾杯

+1

哎呀,看起來像我嚴重曲解你以前的國旗。對於那個很抱歉!我已經重新打開你的問題了。儘管過時的回答通常由業主來修改或刪除,特別是因爲你已經評論過每一個問題,所以我現在就讓他們獨處...... – BoltClock

回答

3

我不就像回答我自己的問題一樣ns,但是由於我最初提出這個問題這麼混亂,我希望這對任何人都能從Google中看到這個問題很有幫助。

不像mssql_query,較新的sqlsrv_query功能需要連接參數設置爲傳遞作爲第一個變量,就像這樣:

$result = sqlsrv_query($this->connection, $query) or die(print_r(sqlsrv_errors(), true)); 
+0

準備報表怎麼樣? – Deep

0

我相信你錯過了WHERE關鍵字。這是假設說:

UPDATE table SET Title = 'Test' WHERE ID = 1 

+0

在試圖編輯所有東西以便發佈在這裏,我不知何故錯過了我的聲明中的'哪裏',唉!抱歉。不用說這個查詢很好,並且在複製到SQL Server Studio Manager時執行時沒有任何問題。乾杯 – Nick

0

嘗試

UPDATE table SET Title = 'Test', ID = 1 

你錯過了逗號 「」

+0

在試圖編輯所有內容以便在此張貼時,我不知何故錯過了我的陳述中的'哪裏',唉!抱歉。不用說這個查詢很好,並且在複製到SQL Server Studio Manager時執行時沒有任何問題。乾杯 – Nick

0

我想你想要麼這個

UPDATE table SET Title = 'Test' WHERE ID = 1 

OR

UPDATE table SET Title = 'Test', ID = 1 
+0

在試圖編輯所有內容以便在此張貼時,我不知何故錯過了我的陳述中的'哪裏',唉!抱歉。不用說這個查詢很好,並且在複製到SQL Server Studio Manager時執行時沒有任何問題。乾杯 – Nick

0

這是一個古老的解決方案:

$result = sqlsrv_query($this->connection, $query) or die(print_r(sqlsrv_errors(), true)); 

可是救了我英里,兩年後!

+0

準備報表怎麼樣? – Deep

相關問題