2016-07-21 75 views
2

我工作的CI中的一個項目,我試圖從MySQL改變我的項目數據庫,MSSQL,但不幸的是在MySQL的合作得非常好我所有的SQL代碼也開始產生錯誤我不不明白。 下面的方法來驗證是否與給定的TIN用戶存在:經與SELECT問題MSSQL

public function verify_user_tin($user_tin) 
{ 

    $this->usid = $user_tin; 

    $this->db->select('taxpayer_id ') 
     ->from('crirs_tin') 
     ->where('tin', $this->usid) 
     ->limit(1); 

    $query = $this->db->get(); 

    return ($query->num_rows() == 1 ? true : false); 

} 

我得到以下錯誤:

Error Number: HY000/208 
Error Number: HY000/208 

General SQL Server error: Check messages from the SQL Server [208] (severity 16) [SELECT TOP 1 "taxpayer_id" FROM "crirs_tin" WHERE "tin" = '1903798293-0001' ] 

SELECT TOP 1 "taxpayer_id" FROM "crirs_tin" WHERE "tin" = '1903798293-0001' 

Filename: models/Account_m.php 
Line Number: 45 

爲什麼一個簡單的選擇在MSSQL貌似很難?請問我該如何解決這個問題?

回答

0

嘗試刪除周圍的表名的雙引號像

SELECT TOP 1 "taxpayer_id" FROM crirs_tin WHERE "tin" = '1903798293-0001' 

(OR),雖然它的作品更好地利用SQL Server的特定語法

SELECT TOP 1 [taxpayer_id] FROM crirs_tin WHERE [tin] = '1903798293-0001' 
+0

感謝您的答覆。一個實現方式,當使用'$ this-> db-> select()'反引號被雙引號替換時,我想知道爲什麼這是mssql的情況。我該如何擺脫這些雙引號? – aknessy