Beispiel #1
0
 /**
  * 通过主键,删除一条记录
  * @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);
 }