如果保存函数中不存在,则会导致错误


IF NOT EXISTS in save function causing error

为了不保存阶段中已经存在的用户,我在查询中使用了以下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
描述:关闭对象时不允许执行操作。"

我不确定处理这件事的最佳方式是,感谢您的帮助,谢谢!

因为您通过$rs->Close();关闭了记录集,所以不允许从记录集进行下一次数据提取。您可以return $rs;,在获得数据后关闭它。