public function filterArgument($argument, $argumentType, $value)
 {
     if ($argumentType == 'array') {
         return explode(',', $value);
     }
     return $argumentType == 'int' ? intval($value) : ACloudSysCoreS::sqlEscape($value);
 }
예제 #2
0
 public function getForumsByRange($startId, $endId)
 {
     list($startId, $endId) = array(intval($startId), intval($endId));
     if ($startId < 0 || $startId > $endId || $endId < 1) {
         return array();
     }
     $sql = sprintf("SELECT * FROM %s WHERE isshow = 1 AND fid >= %s AND fid <= %s", ACloudSysCoreS::sqlMetadata('{{bbs_forum}}'), ACloudSysCoreS::sqlEscape($startId), ACloudSysCoreS::sqlEscape($endId));
     $query = Wind::getComponent('db')->query($sql);
     $result = $query->fetchAll(null, PDO::FETCH_ASSOC);
     if (!ACloudSysCoreS::isArray($result)) {
         return array();
     }
     return $this->buildForumData($result);
 }
예제 #3
0
 public function getIdsFromTable($startId, $endId)
 {
     list($tableName, $primaryKey) = $this->getPrimaryKeyAndTable();
     $result = $tmpResult = array();
     $sql = sprintf("SELECT %s FROM %s WHERE %s >= %s AND %s <= %s", ACloudSysCoreS::sqlMetaData($primaryKey), ACloudSysCoreS::sqlMetaData('{{' . $tableName . '}}'), ACloudSysCoreS::sqlMetaData($primaryKey), ACloudSysCoreS::sqlEscape($startId), ACloudSysCoreS::sqlMetaData($primaryKey), ACloudSysCoreS::sqlEscape($endId));
     $query = Wind::getComponent('db')->query($sql);
     $tmpResult = $query->fetchAll(null, PDO::FETCH_ASSOC);
     if (!ACloudSysCoreS::isArray($tmpResult)) {
         return array();
     }
     foreach ($tmpResult as $value) {
         $result[] = $value[$primaryKey];
     }
     return $result;
 }
예제 #4
0
 public function buildClause($arrays, $expr = null)
 {
     if (!is_array($arrays) && !$expr) {
         return '';
     }
     $sets = " SET ";
     if ($expr) {
         foreach ($expr as $v) {
             $sets .= " " . $v . ",";
         }
     }
     if ($arrays) {
         foreach ($arrays as $k => $v) {
             $sets .= " " . ACloudSysCoreS::sqlMetadata($k) . " = " . ACloudSysCoreS::sqlEscape($v) . ",";
         }
     }
     $sets = trim($sets, ",");
     return $sets ? $sets : '';
 }
예제 #5
0
 public function getForumsByRange($startId, $endId)
 {
     list($startId, $endId) = array(intval($startId), intval($endId));
     if ($startId < 0 || $startId > $endId || $endId < 1) {
         return array();
     }
     $sql = sprintf("SELECT * FROM %s WHERE isshow = 1 AND fid >= %s AND fid <= %s", ACloudSysCoreS::sqlMetadata('{{bbs_forum}}'), ACloudSysCoreS::sqlEscape($startId), ACloudSysCoreS::sqlEscape($endId));
     $query = Wind::getComponent('db')->query($sql);
     $result = $query->fetchAll('fid', PDO::FETCH_ASSOC);
     $fids = array_keys($result);
     $forumDomain = $this->_getDomainDs()->fetchByTypeAndId('forum', $fids);
     $data = array();
     foreach ($result as $k => $v) {
         $v['domain'] = '';
         if (isset($forumDomain[$k])) {
             $v['domain'] = $forumDomain[$k]['domain'];
         }
         $data[] = $v;
     }
     if (!ACloudSysCoreS::isArray($data)) {
         return array();
     }
     return $this->buildForumData($data);
 }
예제 #6
0
 public function delete($ekey)
 {
     return $this->query(sprintf("DELETE FROM %s WHERE ekey = %s", $this->tablename, ACloudSysCoreS::sqlEscape($ekey)));
 }
 public function getsByAppId($appId)
 {
     return $this->fetchAll(sprintf("SELECT * FROM %s WHERE app_id = %s ", $this->tablename, ACloudSysCoreS::sqlEscape($appId)));
 }
 private function getDataByPrimaryKeyRange($tableSetting, $start, $end)
 {
     $generalDataService = ACloudSysCoreCommon::loadSystemClass('generaldata', 'config.service');
     $dataSql = sprintf('SELECT * FROM %s WHERE %s >= %s AND %s <= %s', ACloudSysCoreS::sqlMetadata($tableSetting['name']), ACloudSysCoreS::sqlMetadata($tableSetting['primary_key']), ACloudSysCoreS::sqlEscape($start), ACloudSysCoreS::sqlMetadata($tableSetting['primary_key']), ACloudSysCoreS::sqlEscape($end));
     return $generalDataService->executeSql($dataSql);
 }
예제 #9
0
 public function deleteSqlLogByTimestamp($startTime, $endTime)
 {
     return $this->query(sprintf("DELETE FROM %s WHERE created_time >= %s AND created_time <= %s", $this->tablename, ACloudSysCoreS::sqlEscape($startTime), ACloudSysCoreS::sqlEscape($endTime)));
 }
예제 #10
0
 public function getUsersByRange($startId, $endId)
 {
     list($startId, $endId) = array(intval($startId), intval($endId));
     if ($startId < 0 || $startId > $endId || $endId < 1) {
         return array();
     }
     $result = $members = array();
     $sql = sprintf("SELECT u.* FROM %s u WHERE u.uid >= %s AND u.uid <= %s", ACloudSysCoreS::sqlMetadata('{{user}}'), ACloudSysCoreS::sqlEscape($startId), ACloudSysCoreS::sqlEscape($endId));
     $query = Wind::getComponent('db')->query($sql);
     $result = $query->fetchAll('uid', PDO::FETCH_ASSOC);
     if (!ACloudSysCoreS::isArray($result)) {
         return array();
     }
     $query = Wind::getComponent('db')->query(sprintf("SELECT ud.* FROM %s ud WHERE ud.uid >= %s AND ud.uid <= %s", ACloudSysCoreS::sqlMetadata('{{user_data}}'), ACloudSysCoreS::sqlEscape($startId), ACloudSysCoreS::sqlEscape($endId)));
     $userData = $query->fetchAll('uid', PDO::FETCH_ASSOC);
     $query = Wind::getComponent('db')->query(sprintf("SELECT ui.* FROM %s ui WHERE ui.uid >= %s AND ui.uid <= %s", ACloudSysCoreS::sqlMetadata('{{user_info}}'), ACloudSysCoreS::sqlEscape($startId), ACloudSysCoreS::sqlEscape($endId)));
     $userInfo = $query->fetchAll('uid', PDO::FETCH_ASSOC);
     foreach ($result as $key => $value) {
         $result[$key] = array_merge($value, $userData[$value['uid']], $userInfo[$value['uid']]);
     }
     $siteUrl = ACloudSysCoreCommon::getGlobal('g_siteurl', $_SERVER['SERVER_NAME']);
     foreach ($result as $member) {
         $member['memberurl'] = 'http://' . $siteUrl . '/index.php?m=space&uid=' . $member['uid'];
         $member['icon'] = Pw::getAvatar($member['uid']);
         $members[$member['uid']] = $member;
     }
     return $this->filterMemberFields($members);
 }
예제 #11
0
 public function getThreadsByModifiedTime($startTime, $endTime, $page, $perpage)
 {
     list($startTime, $endTime, $page, $perpage) = array(intval($startTime), intval($endTime), intval($page), intval($perpage));
     if ($startTime < 1 || $endTime < 1 || $startTime > $endTime || $page < 1 || $perpage < 1) {
         return array();
     }
     $offset = ($page - 1) * $perpage;
     $sql = sprintf("SELECT t.* FROM %s t WHERE t.fid != 0 AND t.ischeck = 1 AND t.modified_time >= %s AND t.modified_time <= %s %s", ACloudSysCoreS::sqlMetadata('{{bbs_threads}}'), ACloudSysCoreS::sqlEscape($startTime), ACloudSysCoreS::sqlEscape($endTime), ACloudSysCoreS::sqlLimit($offset, $perpage));
     $query = Wind::getComponent('db')->query($sql);
     $result = $query->fetchAll(null, PDO::FETCH_ASSOC);
     if (!ACloudSysCoreS::isArray($result)) {
         return array();
     }
     $result = $this->getContentAndForumInfo($result);
     return $this->_buildThreadData($result);
 }
예제 #12
0
 public function get($name)
 {
     return $this->fetchOne(sprintf("SELECT * FROM %s WHERE name = %s", $this->tablename, ACloudSysCoreS::sqlEscape($name)));
 }