2012-03-07 29 views
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(); 
} 

..Itが仕事をしていませんが、ユーザが存在しない場合には、このエラーを投げています:

PHPの致命的なエラー:メッセージでキャッチされない例外 'com_exception' '出典: ADODB.Recordsetのを
説明:オブジェクトが閉じているとき、操作は許可されません。

これを処理する最善の方法はありませんでした。何か助けていただければ幸いです。ありがとうございます!

答えて

1

Recordsetを$rs->Close();で閉じるため、Recordsetからの次のデータフェッチは許可されません。あなたはreturn $rs;とすることができますし、あなたのデータを取得した後にそれを閉じます。

関連する問題