/** * 删除所有记录及关联的数据 * * @return boolean */ function removeAllWithLinks() { $this->dbo->startTrans(); // 处理关联数据表 if ($this->autoLink) { foreach (array_keys($this->links) as $linkKey) { $link =& $this->links[$linkKey]; /* @var $link FLEA_Db_TableLink */ switch ($link->type) { case MANY_TO_MANY: /* @var $link FLEA_Db_ManyToManyLink */ $link->init(); $sql = "DELETE FROM {$link->qjoinTable}"; break; case HAS_ONE: case HAS_MANY: $link->init(); $sql = "DELETE FROM {$link->assocTDG->qtableName}"; break; default: continue; } if ($this->dbo->execute($sql) == false) { $this->dbo->completeTrans(false); return false; } } } $sql = "DELETE FROM {$this->qtableName}"; if ($this->dbo->execute($sql) == false) { $this->dbo->completeTrans(false); return false; } // 提交事务 $this->dbo->completeTrans(); return true; }