2014-05-19 65 views
1

我遇到了一個問題,即我的PHP sqlsrv UPDATE語句運行並且不會返回任何錯誤,但數據庫中的任何內容都不會更改,且該行實際上未更新。有什麼我缺少,這將允許此查詢看起來成功運行,但不更新行?sqlsrv UPDATE語句運行但不更新數據庫

我檢查到更新語句在SQL服務器管理工​​作室中運行,並更新該行。

$visitquery = "UPDATE tblVisit SET CalledInBy='WINNER' WHERE VisitID='3679061'";    

        $visitClose = sqlsrv_prepare($connect,$visitquery); 
        if(sqlsrv_execute($visitClose)) 
         { 
           echo "Statement executed.\n <br />"; 
         } 
         else 
         { 
          echo "Error in executing statement.\n"; 
          die(print_r(sqlsrv_errors(), true)); 
         } 
+0

難道是你的where子句沒有匹配的行嗎?在調用'sqlsrv_execute'後,嘗試調用'sqlsrv_rows_affected($ visitClose)'查看'UPDATE'語句影響了多少行。 –

+0

你是否知道***你有一個'VisitID' =''3679061'的記錄? *(沒有拼寫錯誤,沒有不匹配的數據類型?)* – MatBailie

+0

另外,將db和schema名稱添加到語句中的對象,如MAIN.dbo.tblvisit或其他類似的。 –

回答

0

請確保您的腳本有權訪問正確的數據庫,否則表中沒有任何事情發生。

因此,首先建立到數據庫的連接,然後指定包含您的表的數據庫。

在您的設置中,在代碼上方添加此行。

$connect = sqlsrv_connect(server format goes here,array("Database"=>name of database containing tblVisit in quotes goes here,"UID"=>username to access database goes here,"PWD"=>password to access database goes here)); 

對於每個值,都用引號括起來,因爲它們是字符串。

有關於如何使這裏的代碼的詳細信息:

See this (at php.net)

相關問題