pdo = new DB_Access(ENUM::DBLocate, ENUM::DBName, ENUM::DBUser, ENUM::DBPassword); } /** * 取得第 N 層的資料 * * @param int $level 第幾層 * @param int $firstLevel 第一層的 id * @return array */ function getLevelList($level, $firstLevel){ $sqlStr = " SELECT uuid, level, title FROM ".$this->prodTable." WHERE level = :level AND first_level_id = :first; "; return $this->pdo->execute($sqlStr, array('level'=>$level, 'first'=>$firstLevel)); } /** * 依第幾層和 title 取得資料 * * @param int $level 第幾層 * @param int $title 標題 * @param int $firstLevel 第一層的 id * @return array */ function getLevelDataByName($level, $title, $firstLevel){ $sqlStr = " SELECT uuid, level, title FROM ".$this->prodTable." WHERE level = :level AND title = :title AND first_level_id = :first; "; return $this->pdo->execute($sqlStr, array('level'=>$level,'title'=>$title, 'first'=>$firstLevel)); } /** * 取得產品資料 * * @param int $dataId * @return array */ function getProdContent($dataId){ $sqlStr = " SELECT uuid, level, upper_level, title, sub_title, image_url, image_alt, content FROM ".$this->prodTable." WHERE uuid = :id "; return $this->pdo->execute($sqlStr, array('id'=>$dataId)); } /** * 寫入資料 * * @param array $dataArray * @return boolean */ function addProdData($dataArray){ $this->pdo->insert($this->prodTable, $dataArray); if ( !is_null($this->pdo->getLastId()) && $this->pdo->getLastId() != 0 ){ return $this->pdo->getLastId(); } return false; } /** * 更新資料 * * @param string $id * @param string $dataArray * @return boolen */ function updateProdData($id, $dataArray){ return $this->pdo->update($this->prodTable, $dataArray, 'uuid', $id); } /** * 取得該分類底下的列表資料 * * @param int $level 第幾層 * @param int $dataId 資料 ID * @param int $pages 頁數 * @param int $limit 筆數 * @return array */ function getLevelDataById($level, $dataId, $pages, $limit){ $pagesStr = ''; $start = ($pages-1)*$limit; $pagesStr.= ' LIMIT :pages , :limit'; $paramArr = array(); $paramArr['level'] = $level; $paramArr['id'] = $dataId; $paramArr['pages'] = $start; $paramArr['limit'] = $limit; $sqlStr = " SELECT uuid, level, title, sub_title, image_url, image_alt, upper_level, content FROM ".$this->prodTable." WHERE level = :level AND upper_level = :id ORDER BY create_date DESC, uuid ASC ".$pagesStr." ; "; return $this->pdo->execute($sqlStr, $paramArr); } /** * 取得該分類底下的列表全部筆數 * * @param int $level 第幾層 * @param int $dataId 資料 ID * @return array */ function getLevelDataByIdTotalNum($level, $dataId){ $dataNum = 0; $paramArr = array(); $paramArr['level'] = $level; $paramArr['id'] = $dataId; $sqlStr = " SELECT count(uuid) as num FROM ".$this->prodTable." WHERE level = :level AND upper_level = :id; "; $result = $this->pdo->execute($sqlStr, $paramArr); if ( is_array($result) && count($result) != 0 && isset($result[0]['num']) && is_numeric($result[0]['num']) ){ $dataNum = $result[0]['num']; } return $dataNum; } /** * 小電梯 用名稱取得產品內容該筆 id * * @param string $prodName * @return array */ function getProdIdByName($prodName){ $sqlStr = " SELECT uuid FROM ".$this->prodTable." WHERE title = :prodName AND level = 2 "; return $this->pdo->execute($sqlStr, array('prodName'=>$prodName)); } /** * 寫入配件資料 * * @param array $dataArray * @return boolean */ function addAccessoryData($dataArray){ $this->pdo->insert($this->accessoryTable, $dataArray); if ( !is_null($this->pdo->getLastId()) && $this->pdo->getLastId() != 0 ){ return $this->pdo->getLastId(); } return false; } /** * 取得配件列表 * * @param int $productId * @param int $cateId * @return array */ function getAccessoryData($productId, $cateId){ $cateName = '標準配置'; if ( $cateId == 2){ $cateName = '可選配置'; } $sqlStr = " SELECT * FROM ".$this->accessoryTable." WHERE prod_id = :dataId AND accessory_configuration = :cateName "; return $this->pdo->execute($sqlStr, array('dataId'=>$productId, 'cateName'=>$cateName)); } function transaction(){ $this->pdo->transaction(); } function rollbackDB(){ $this->pdo->rollbackDB(); } function commitDB(){ $this->pdo->commitDB(); } function closeDB(){ $this->pdo->closeDB(); } function getLastId(){ $this->pdo->getLastId(); } } ?>