php
  • sql
  • 2012-03-07 58 views 0 likes 
    0

    爲了不保存已經存在於舞臺中的用戶,我在查詢中使用了以下IF NOT EXISTS語句。如果在保存函數中不存在導致錯誤

    public function save() { 
        // new record 
        if ($this->id == null) { 
         $query = "IF NOT EXISTS(SELECT * FROM Table_A WHERE user_id ='{$this->user_id}' and stage_id = '{$this->stage_id}') INSERT INTO Table_A(". 
          'id, '. 
          'user_id, '. 
          'stage_id, '. 
          'create_date '. 
          ') OUTPUT inserted.id '. 
          'VALUES ('. 
           'newid(), '. 
           '%s, '. 
           '%s, '. 
           'getdate()'. 
         ')'; 
    
    $rs = $this->db->Execute($query); 
    
         if ($rs->EOF) { 
          return false; 
         } 
    
         $rs->Close(); 
    } 
    

    ..它做這項工作,但是當用戶確實存在它拋出這個錯誤:

    PHP致命錯誤:未捕獲的異常「發出com_exception」有消息「來源: ADODB.Recordset
    描述:當對象關閉時不允許操作。'

    不知道處理這個問題的最佳方法是,任何幫助表示讚賞,謝謝!

    回答

    1

    由於您關閉了記錄集$rs->Close();,因此不允許從記錄集中讀取下一個數據。你可以return $rs;,當你得到你的數據後關閉它。

    相關問題