为了不保存舞台中已存在的用户,我在查询中使用以下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
描述:关闭对象时不允许操作。 “
不确定处理此问题的最佳方法是,感谢任何帮助,谢谢!
答案 0 :(得分:1)
因为您通过$rs->Close();
关闭Recordset,所以不允许从Recordset中获取下一个数据。您可以return $rs;
,然后在获得数据后关闭它。