/** * 通过主键,删除一条记录 * @param integer $memberId * @return integer */ public function removeByPk($memberId) { if (($memberId = (int) $memberId) <= 0) { return false; } $portalTblName = $this->getTblprefix() . TableNames::getPortal(); $membersTblName = $this->getTblprefix() . TableNames::getMembers(); $socialTblName = $this->getTblprefix() . TableNames::getSocial(); $sql = 'SELECT `p`.*, `m`.*, `s`.* FROM `' . $portalTblName . '` AS `p` LEFT JOIN `' . $membersTblName . '` AS `m` ON `p`.`member_id` = `m`.`member_id` LEFT JOIN `' . $socialTblName . '` AS `s` ON `m`.`member_id` = `s`.`member_id` WHERE `m`.`member_id` = ?'; $row = $this->fetchAssoc($sql, $memberId); if (!$row || !is_array($row) || !isset($row['member_id'])) { return false; } Log::info(sprintf('Portal backup before remove: %s', serialize($row)), 0, __METHOD__); $commands = array(array('sql' => 'DELETE FROM `' . $portalTblName . '` WHERE `member_id` = ?', 'params' => $memberId), array('sql' => 'DELETE FROM `' . $membersTblName . '` WHERE `member_id` = ?', 'params' => $memberId), array('sql' => 'DELETE FROM `' . $socialTblName . '` WHERE `member_id` = ?', 'params' => $memberId)); return $this->doTransaction($commands); }