为了不保存阶段中已经存在的用户,我在查询中使用了以下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;
,在获得数据后关闭它。