如果不存在保存功能导致错误

时间:2012-03-07 01:29:04

标签: php sql

为了不保存舞台中已存在的用户,我在查询中使用以下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 个答案:

答案 0 :(得分:1)

因为您通过$rs->Close();关闭Recordset,所以不允许从Recordset中获取下一个数据。您可以return $rs;,然后在获得数据后关闭它。