function updates($array) { foreach ($array as $key => $value) { $array[$key] = $this->_serializeData($value); } $this->_db->update("REPLACE INTO " . $this->_tableName . " (invokepieceid,fid,loopid,data,cachetime) VALUES " . pwSqlMulti($array, false)); }
/** * 批量更新缓存数据 * * @param array $data 缓存数据,array('KEY'=>'VALUE') * @param int $expire 缓存数据自动过期时间(秒) * @return bool */ function update($data, $expire = 180) { $tmpvhash = $dcache = $kcache = array(); $expire = $this->now + $expire; $keys = array_keys($data); $query = $this->cache->query("SELECT skey,vhash FROM " . $this->table . " WHERE skey IN (" . pwImplode($keys, false) . ")"); while ($rt = $this->cache->fetch_array($query)) { $tmpvhash[$rt['skey']] = $rt['vhash']; } foreach ($data as $key => $value) { $v = $this->_serialize($value); $vhash = md5($v); if (!isset($tmpvhash[$key]) || $tmpvhash[$key] != $vhash) { $dcache[] = array($key, $expire, $vhash, $v); } else { $kcache[] = $key; } } if ($dcache) { $this->cache->update("REPLACE INTO " . $this->table . " (skey,expire,vhash,value) VALUES " . pwSqlMulti($dcache, false)); } if ($kcache) { $this->cache->update("UPDATE " . $this->table . " SET expire=" . pwEscape($expire, false) . "WHERE skey IN (" . pwImplode($kcache, false) . ")"); } $this->_expire(); }
/** * @param $data * @return boolean */ function replaceSEOSet($type, $data) { if ($data && $type && in_array($type, $this->_types)) { $this->_db->update("REPLACE INTO " . $this->_tableName . " (mode,page,type,content) VALUES " . pwSqlMulti($data)); return true; } else { return false; } }
function update($uploaddb) { global $windid, $timestamp, $pintro; foreach ($uploaddb as $key => $value) { $this->attachs[] = array('aid' => $this->aid, 'pintro' => $pintro[$value['id']], 'path' => $value['fileuploadurl'], 'uploader' => $windid, 'uptime' => $timestamp, 'ifthumb' => $value['ifthumb']); } if ($this->attachs) { $this->db->update("INSERT INTO pw_cnphoto (aid,pintro,path,uploader,uptime,ifthumb) VALUES " . pwSqlMulti($this->attachs)); $this->pid = $this->db->insert_id(); } }
$lastpos = strrpos($rt['path'], '/') + 1; $path = $attachdir . '/' . substr($rt['path'], 0, $lastpos) . 's_' . substr($rt['path'], $lastpos); if (copy($path, $attachdir . '/' . $savedir . 's_' . $filename)) { $ifthumb = 1; } } $path = $savedir . $filename; } else { $path = $rt['path']; $ifthumb = $rt['ifthumb']; } $photos[] = array('aid' => $selaid, 'pintro' => '', 'path' => $path, 'uploader' => $windid, 'uptime' => $timestamp, 'ifthumb' => $ifthumb); $lastphoto = $path; } if ($photos) { $db->update("INSERT INTO pw_cnphoto (aid,pintro,path,uploader,uptime,ifthumb) VALUES " . pwSqlMulti($photos)); $pid = $db->insert_id(); $photoNum = count($photos); $lastpid = getLastPid($selaid, 4); array_unshift($lastpid, $pid); $db->update("UPDATE pw_cnalbum SET photonum=photonum+" . pwEscape($photoNum) . ",lasttime=" . pwEscape($timestamp) . ',lastpid=' . pwEscape(implode(',', $lastpid)) . (!$selalbum['lastphoto'] ? ',lastphoto=' . pwEscape($lastphoto) : '') . " WHERE aid=" . pwEscape($selaid)); countPosts("+{$photoNum}"); $feedText = ''; foreach ($photos as $value) { $feedText .= "[url={$db_bbsurl}/{#APPS_BASEURL#}space=1&q=galbum&a=view&cyid={$cyid}&pid={$pid}][img]" . getphotourl($value['path'], $value['ifthumb']) . "[/img][/url] "; } pwAddFeed($winduid, 'colony_photo', $cyid, array('lang' => 'colony_photo', 'cyid' => $cyid, 'num' => $photoNum, 'colony_name' => $colony['cname'], 'text' => $feedText)); //积分变动 require_once R_P . 'require/credit.php'; $o_groups_creditset = unserialize($o_groups_creditset); $creditset = getCreditset($o_groups_creditset['Uploadphoto']);
<?php !defined('PW_UPLOAD') && exit('Forbidden'); $maxid = $db->get_value("SELECT MAX(id) FROM pw_advert"); $maxid = $maxid < 100 ? 101 : $maxid + 1; $db->update("ALTER TABLE pw_advert AUTO_INCREMENT={$maxid}", false); //$query = $db->query("");//TODO 转换id小于100的记录 $query = $db->query("SELECT * FROM pw_advert WHERE id<={$maxid} AND type=1"); while ($rt = $db->fetch_array($query)) { $ads[] = array($rt['type'], $rt['uid'], $rt['ckey'], $rt['stime'], $rt['etime'], $rt['ifshow'], $rt['orderby'], $rt['descrip'], $rt['config']); } if ($ads) { $db->update("INSERT INTO pw_advert(type,uid,ckey,stime,etime,ifshow,orderby,descrip,config) VALUES " . pwSqlMulti($ads, false)); } $maxid = $maxid - 1; $db->update("DELETE FROM pw_advert WHERE id<={$maxid} AND type=1"); $arrSQL = array("REPLACE INTO pw_advert VALUES(1, 0, 0, 'Site.Header', 0, 0, 1, 0, '头部横幅~\t~显示在页面的头部,一般以图片或flash方式显示,多条广告时系统将随机选取一条显示', 'a:1:{s:7:\"display\";s:4:\"rand\";}');", "REPLACE INTO pw_advert VALUES(2, 0, 0, 'Site.Footer', 0, 0, 1, 0, '底部横幅~\t~显示在页面的底部,一般以图片或flash方式显示,多条广告时系统将随机选取一条显示', 'a:1:{s:7:\"display\";s:4:\"rand\";}');", "REPLACE INTO pw_advert VALUES(3, 0, 0, 'Site.NavBanner1', 0, 0, 1, 0, '导航通栏[1]~\t~显示在主导航的下面,一般以图片或flash方式显示,多条广告时系统将随机选取一条显示', 'a:1:{s:7:\"display\";s:4:\"rand\";}');", "REPLACE INTO pw_advert VALUES(4, 0, 0, 'Site.NavBanner2', 0, 0, 1, 0, '导航通栏[2]~\t~显示在头部通栏广告[1]位置的下面,与通栏广告[1]可一起显示,一般为图片广告', 'a:1:{s:7:\"display\";s:4:\"rand\";}');", "REPLACE INTO pw_advert VALUES(5, 0, 0, 'Site.PopupNotice', 0, 0, 1, 0, '弹窗广告[右下]~\t~在页面右下角以浮动的层弹出显示,此广告内容需要单独设置相关窗口参数', 'a:1:{s:7:\"display\";s:4:\"rand\";}');", "REPLACE INTO pw_advert VALUES(6, 0, 0, 'Site.FloatRand', 0, 0, 1, 0, '漂浮广告[随机]~\t~以各种形式在页面内随机漂浮的广告', 'a:1:{s:7:\"display\";s:4:\"rand\";}');", "REPLACE INTO pw_advert VALUES(7, 0, 0, 'Site.FloatLeft', 0, 0, 1, 0, '漂浮广告[左]~\t~以各种形式在页面左边漂浮的广告,俗称对联广告[左]', 'a:1:{s:7:\"display\";s:4:\"rand\";}');", "REPLACE INTO pw_advert VALUES(8, 0, 0, 'Site.FloatRight', 0, 0, 1, 0, '漂浮广告[右]~\t~以各种形式在页面右边漂浮的广告,俗称对联广告[右]', 'a:1:{s:7:\"display\";s:4:\"rand\";}');", "REPLACE INTO pw_advert VALUES(9, 0, 0, 'Mode.TextIndex', 0, 0, 1, 0, '文字广告[论坛首页]~\t~显示在页面的导航下面,一般以文字方式显示,每行四条广告,超过四条将换行显示', 'a:1:{s:7:\"display\";s:3:\"all\";}');", "REPLACE INTO pw_advert VALUES(10, 0, 0, 'Mode.Forum.TextRead', 0, 0, 1, 0, '文字广告[帖子页]~\t~显示在页面的导航下面,一般以文字方式显示,每行四条广告,超过四条将换行显示', 'a:1:{s:7:\"display\";s:3:\"all\";}');", "REPLACE INTO pw_advert VALUES(11, 0, 0, 'Mode.Forum.TextThread', 0, 0, 1, 0, '文字广告[主题页]~\t~显示在页面的导航下面,一般以文字方式显示,每行四条广告,超过四条将换行显示', 'a:1:{s:7:\"display\";s:3:\"all\";}');", "REPLACE INTO pw_advert VALUES(12, 0, 0, 'Mode.Forum.Layer.TidRight', 0, 0, 1, 0, '楼层广告[帖子右侧]~\t~出现在帖子右侧,一般以图片或文字显示,多条帖间广告时系统将随机选取一条显示', 'a:1:{s:7:\"display\";s:4:\"rand\";}');", "REPLACE INTO pw_advert VALUES(13, 0, 0, 'Mode.Forum.Layer.TidDown', 0, 0, 1, 0, '楼层广告[帖子下方]~\t~出现在帖子下方,一般以图片或文字显示,多条帖间广告时系统将随机选取一条显示', 'a:1:{s:7:\"display\";s:4:\"rand\";}');", "REPLACE INTO pw_advert VALUES(14, 0, 0, 'Mode.Forum.Layer.TidUp', 0, 0, 1, 0, '楼层广告[帖子上方]~\t~出现在帖子上方,一般以图片或文字显示,多条帖间广告时系统将随机选取一条显示', 'a:1:{s:7:\"display\";s:4:\"rand\";}');", "REPLACE INTO pw_advert VALUES(15, 0, 0, 'Mode.Forum.Layer.TidAmong', 0, 0, 1, 0, '楼层广告[楼层中间]~\t~出现在帖子楼层之间,一般以图片或文字显示,多条帖间广告时系统将随机选取一条显示', 'a:1:{s:7:\"display\";s:4:\"rand\";}');", "REPLACE INTO pw_advert VALUES(16, 0, 0, 'Mode.Layer.Index', 0, 0, 1, 0, '论坛首页分类间~\t~出现在首页分类层之间,一般以图片或文字显示,多条帖间广告时系统将随机选取一条显示', 'a:1:{s:7:\"display\";s:4:\"rand\";}');", "REPLACE INTO pw_advert VALUES(23, 0, 0, 'Mode.Forum.Layer.area.ThreadTop', 0, 0, 1, 0, '门户帖子列表页右上~\t~帖子列表页门户模式浏览时,右上方的广告位', 'a:1:{s:7:\"display\";s:4:\"rand\";}');", "REPLACE INTO pw_advert VALUES(24, 0, 0, 'Mode.Forum.Layer.area.ThreadBtm', 0, 0, 1, 0, '门户帖子列表页右下~\t~帖子列表页门户模式浏览时,右下方的广告位', 'a:1:{s:7:\"display\";s:4:\"rand\";}');", "REPLACE INTO pw_advert VALUES(25, 0, 0, 'Mode.Forum.Layer.area.ReadTop', 0, 0, 1, 0, '门户帖子内容页右上~\t~帖子内容页门户模式浏览时,右上方的广告位', 'a:1:{s:7:\"display\";s:4:\"rand\";}');", "REPLACE INTO pw_advert VALUES(26, 0, 0, 'Mode.Forum.Layer.area.ReadBtm', 0, 0, 1, 0, '门户帖子内容页右下~\t~帖子内容页门户模式浏览时,右下方的广告位', 'a:1:{s:7:\"display\";s:4:\"rand\";}');", "REPLACE INTO pw_advert VALUES(30, 2, 0, 'Wap.Header', 0, 0, 1, 0, 'WAP头部~\t~显示在WAP头部,可以是图片或文字,存在多条广告时将全部显示', 'a:1:{s:7:\"display\";s:3:\"all\";}');", "REPLACE INTO pw_advert VALUES(31, 2, 0, 'Wap.Footer', 0, 0, 1, 0, 'WAP底部~\t~显示在WAP底部,可以是图片或文字,存在多条广告时将全部显示', 'a:1:{s:7:\"display\";s:3:\"all\";}');", "REPLACE INTO pw_advert VALUES(32, 2, 0, 'Wap.Read.Header', 0, 0, 1, 0, 'WAP帖子内容顶部~\t~显示在WAP帖子内容顶部,可以是图片或文字,存在多条广告时将全部显示', 'a:1:{s:7:\"display\";s:3:\"all\";}');", "REPLACE INTO pw_advert VALUES(33, 2, 0, 'Wap.Read.Footer', 0, 0, 1, 0, 'WAP帖子内容底部~\t~显示在WAP帖子内容底部,可以是图片或文字,存在多条广告时将全部显示', 'a:1:{s:7:\"display\";s:3:\"all\";}');", "REPLACE INTO `pw_advert` (`id`, `type`, `uid`, `ckey`, `stime`, `etime`, `ifshow`, `orderby`, `descrip`, `config`) VALUES\n(27, 0, 0, 'Site.Search.Thread.Right', 0, 0, 1, 0, '搜索帖子右侧广告~\t~搜索帖子时,显示在页面的右侧', 'a:1:{s:7:\"display\";s:4:\"rand\";}');", "REPLACE INTO `pw_advert` (`id`, `type`, `uid`, `ckey`, `stime`, `etime`, `ifshow`, `orderby`, `descrip`, `config`) VALUES\n(28, 0, 0, 'Site.Search.Diary.Right', 0, 0, 1, 0, '搜索日志右侧广告~\t~搜索日志时,显示在页面的右侧', 'a:1:{s:7:\"display\";s:4:\"rand\";}');", "REPLACE INTO `pw_advert` (`id`, `type`, `uid`, `ckey`, `stime`, `etime`, `ifshow`, `orderby`, `descrip`, `config`) VALUES\n(29, 0, 0, 'Site.u.IndexCenter', 0, 0, 1, 0, '个人中心首页广告位~\t~', 'a:1:{s:7:\"display\";s:3:\"all\";}')"); foreach ($arrSQL as $sql) { if (trim($sql)) { $db->update($sql); } } $arrUpdate = array('Site.NavBanner' => 'Site.NavBanner1', 'Mode.Layer.TidRight' => 'Mode.Forum.Layer.TidRight', 'Mode.Layer.TidDown' => 'Mode.Forum.Layer.TidDown', 'Mode.Layer.TidUp' => 'Mode.Forum.Layer.TidUp', 'Mode.Layer.TidAmong' => 'Mode.Forum.Layer.TidAmong'); foreach ($arrUpdate as $key => $value) { $db->update("UPDATE pw_advert SET ckey=" . pwEscape($value, false) . "WHERE ckey=" . pwEscape($key, false)); }
if (!S::inArray($key, $fids)) { $addSQL[$key]['fid'] = $key; $addSQL[$key]['vieworder'] = $vieworder; } else { if ($vieworder !== $forumDB[$key]['vieworder']) { $updateArr[$key]['vieworder'] = $vieworder; } } } foreach ($order as $key => $value) { //用于delect if (S::inArray($key, $fids)) { !$fidcommend[$key] && ($delSQL[$key] = $key); } } $addSQL && $db->update("REPLACE INTO pw_searchforum (fid,vieworder) VALUES " . pwSqlMulti($addSQL)); if ($updateArr) { foreach ($updateArr as $key => $value) { $value && $db->update("UPDATE pw_searchforum SET " . pwSqlSingle($value) . " WHERE fid=" . pwEscape($key, false)); } } $delSQL && $db->update("DELETE FROM pw_searchforum WHERE fid IN(" . pwImplode($delSQL) . ")"); //if ($addSQL || $updateArr || $delSQL) { updatecache_search(); //} adminmsg('operate_success', "{$basename}&action=forum"); } elseif ($action == 'statistic') { s::gp(array('keyword', 'createtime_s', 'createtime_e')); $createtime_s = $createtime_s ? $createtime_s : get_date($timestamp - 7 * 24 * 3600, 'Y-m-d'); $createtime_e = $createtime_e ? $createtime_e : get_date($timestamp, 'Y-m-d'); $addsql = '';
} if ($typedb) { $db->update("REPLACE INTO pw_topictype (fid,name,vieworder) VALUES " . pwSqlMulti($typedb)); } //增加二级新分类 foreach ($new_t_sub_db as $key => $value) { foreach ($value as $k => $v) { if (empty($v)) { continue; } $v = str_replace(array('..', ')', '<', '='), array('..', ')', '<', '='), $v); $subtypedb[] = array('fid' => $fid, 'name' => $v, 'vieworder' => $new_t_sub_view_db[$key][$k], 'upid' => $key); } } if ($subtypedb) { $db->update("REPLACE INTO pw_topictype (fid,name,vieworder,upid) VALUES " . pwSqlMulti($subtypedb)); } require_once R_P . 'admin/cache.php'; if ($addtpctype != $forumset['addtpctype']) { $forumset['addtpctype'] = $addtpctype; $forumset = serialize($forumset); if ($foruminfo['fid']) { $db->update('UPDATE pw_forumsextra SET forumset=' . pwEscape($forumset) . ' WHERE fid=' . pwEscape($fid)); } else { $db->update('INSERT INTO pw_forumsextra SET ' . pwSqlSingle(array('fid' => $fid, 'forumset' => $forumset))); } updatecache_forums($fid); } $foruminfo = L::forum($fid); if ($t_type != $foruminfo['t_type']) { $db->update("UPDATE pw_forums SET " . pwSqlSingle(array('t_type' => $t_type)));
if ($md_ifopen && $userdb['medals']) { include_once D_P . 'data/bbscache/medaldb.php'; $query = $db->query("SELECT id,awardee,level FROM pw_medalslogs WHERE awardee=" . pwEscape($userdb['username'], false) . " AND action='1' AND state='0' AND timelimit>0 AND {$timestamp}-awardtime>timelimit*2592000"); if ($db->num_rows($query)) { include_once R_P . 'require/msg.php'; $reason = Char_cv(getLangInfo('other', 'medal_reason')); $ids = $medals = $medalslog = array(); while ($rt = $db->fetch_array($query)) { $ids[] = $rt['id']; $medals[] = $rt['level']; $medalslog[] = array($rt['awardee'], 'SYSTEM', $timestamp, $rt['level'], 2, $reason); $message = array('toUser' => $rt['awardee'], 'subject' => 'metal_cancel', 'content' => 'metal_cancel_text', 'other' => array('medalname' => $_MEDALDB[$rt['level']]['name'])); pwSendMsg($message); } if ($ids) { $db->update("INSERT INTO pw_medalslogs(awardee,awarder,awardtime,level,action,why) VALUES " . pwSqlMulti($medalslog, false)); $db->update("UPDATE pw_medalslogs SET state='1' WHERE id IN(" . pwImplode($ids) . ")"); $userdb['medals'] = explode(',', $userdb['medals']); $userdb['medals'] = array_diff($userdb['medals'], $medals); $userdb['medals'] = implode(',', $userdb['medals']); $db->update("UPDATE pw_members SET medals=" . pwEscape($userdb['medals'], false) . " WHERE uid=" . pwEscape($userdb['uid'], false)); $db->update('DELETE FROM pw_medaluser WHERE uid=' . pwEscape($userdb['uid'], false) . ' AND mid IN(' . pwImplode($medals) . ')'); updatemedal_list(); } } $userdb['medals'] = explode(',', $userdb['medals']); } $usercredit = array('postnum' => $userdb['postnum'], 'digests' => $userdb['digests'], 'rvrc' => $userdb['rvrc'], 'money' => $userdb['money'], 'credit' => $userdb['credit'], 'currency' => $userdb['currency'], 'onlinetime' => $userdb['onlinetime']); foreach ($credit->get($userdb['uid'], 'CUSTOM') as $key => $value) { $usercredit[$key] = $value; }
$forums[$key]['title'] = $value['title'] = Char_cv(strip_tags($value['title'])); $forums[$key]['descrip'] = $value['descrip'] = Char_cv(strip_tags($value['descrip'])); $forums[$key]['keywords'] = $value['keywords'] = Char_cv(strip_tags($value['keywords'])); if ($forum[$key]['title'] != $value['title'] || $forum[$key]['descrip'] != $value['descrip'] || $forum[$key]['keywords'] != $value['keywords']) { $db->update("UPDATE pw_forums SET title=" . pwEscape($value['title']) . ",metadescrip=" . pwEscape($value['descrip']) . ",keywords=" . pwEscape($value['keywords']) . " WHERE fid = " . pwEscape($key)); } } updatecache_f(); $db_bbstitle = array('index' => Char_cv(strip_tags($contents['title_index'])), 'thread' => Char_cv(strip_tags($contents['title_thread'])), 'read' => Char_cv(strip_tags($contents['title_read']))); $db_metadescrip = array('index' => Char_cv(strip_tags($contents['metadesc_index'])), 'thread' => Char_cv(strip_tags($contents['metadesc_thread'])), 'read' => Char_cv(strip_tags($contents['metadesc_read']))); $db_metakeyword = array('index' => Char_cv(strip_tags($contents['metakeyword_index'])), 'thread' => Char_cv(strip_tags($contents['metakeyword_thread'])), 'read' => Char_cv(strip_tags($contents['metakeyword_read']))); $config = array(); $config[] = array('db_name' => $db_names[0], 'vtype' => 'array', 'db_value' => serialize($db_bbstitle)); $config[] = array('db_name' => $db_names[1], 'vtype' => 'array', 'db_value' => serialize($db_metadescrip)); $config[] = array('db_name' => $db_names[2], 'vtype' => 'array', 'db_value' => serialize($db_metakeyword)); $sql = "REPLACE INTO pw_config (db_name,vtype,db_value) VALUES " . pwSqlMulti($config); $db->update($sql); updatecache_c(); $basename = $basename . '&mode=' . $mode; adminmsg('operate_success'); } else { if (!file_exists(D_P . 'data/bbscache/config.php') || !isset($db_bbstitle) || !isset($db_metadescrip) || !isset($db_metakeyword)) { $sql = "SELECT * FROM pw_config WHERE db_name IN ( " . pwImplode($db_names) . " ) "; $query = $db->query($sql); while ($rt = $db->fetch_array($query)) { ${$rt['db_name']} = unserialize($rt['db_value']); } } $config['title'] = is_array(${$db_names[0]}) ? ${$db_names[0]} : array('index' => ${$db_names[0]}, 'thread' => ${$db_names[0]}, 'read' => ${$db_names[0]}); $config['metadescrip'] = is_array(${$db_names[1]}) ? ${$db_names[1]} : array('index' => ${$db_names[1]}, 'thread' => ${$db_names[1]}, 'read' => ${$db_names[1]}); $config['metakeyword'] = is_array(${$db_names[2]}) ? ${$db_names[2]} : array('index' => ${$db_names[2]}, 'thread' => ${$db_names[2]}, 'read' => ${$db_names[2]});
if ('add' == $action) { /* 新增提交 */ $task = validator_submit_task($data); if (!isset($task['error']) && isset($task['ret'])) { /* 验证成功 */ $ret = $task['ret']; if (is_array($ret['owners'])) { for ($i = 0; $i < sizeof($ret['owners']); $i++) { // 默认字段 $ret['publisher_id'] = $winduid; $ret['create_time'] = time(); $ret['modify_time'] = time(); $ret['owner_id'] = $ret['owners'][$i]; $ret_temp = $ret; array_shift($ret_temp); $temp[] = pwSqlMulti(array($ret_temp)); } $temp = implode(',', $temp); // 组装SQL $sql = 'INSERT INTO pw_teamtasks (pid,taskname,owner,priority,plan_start_time,plan_end_time,real_start_time,real_end_time,remark,content,status,publisher_id,create_time,modify_time,owner_id) VALUES' . $temp; // 写入数据 $db->update($sql); $tid = $db->insert_id(); // 写入结果 if (!empty($tid) && is_numeric($tid) && 0 < $tid) { // 是否关联修改项目的实际开始时间 if (0 < $ret['pid'] && 0 < $ret['real_start_time']) { $sql = 'SELECT COUNT(*) AS cnt FROM pw_teamtasks WHERE pid = ' . $ret['pid']; $rs = $db->get_one($sql); if (1 == $rs['cnt']) { $sql = 'UPDATE pw_teamprojects SET real_start_time = ' . $ret['real_start_time'] . ' WHERE pid = ' . $ret['pid'];
$threadList->refreshThreadIdsByForumId($fid); } foreach ($ttable_a as $pw_tmsgs => $val) { $val = pwImplode($val); $db->update("UPDATE {$pw_tmsgs} SET remindinfo=" . pwEscape($remindinfo) . "WHERE tid IN({$val})"); } if (!empty($selids) && !empty($selForums)) { $_topped = array(); if ($topped) { foreach ($selForums as $_forum) { foreach ($selids as $_tid) { $_topped[] = array('fid' => $_forum, 'tid' => $_tid, 'pid' => '0', 'floor' => $topped, 'uptime' => $tid_fid[$_tid], 'overtime' => $toolfield); } } $db->update("DELETE FROM pw_poststopped WHERE pid = '0' AND fid != '0' AND tid IN (" . pwImplode($selids) . ")"); $db->update("REPLACE INTO pw_poststopped (fid,tid,pid,floor,uptime,overtime) values " . pwSqlMulti($_topped)); } else { $db->update("DELETE FROM pw_poststopped WHERE fid IN(" . pwImplode($selForums) . ") \r\n\t\t\t\t\t\t\t AND tid IN (" . pwImplode($selids) . ") AND pid = '0' "); } } updatetop(); delfcache($fid, $db_fcachenum); /*置顶印戳*/ if ($overprint) { /*过滤取消置顶*/ $seltid = $seltid ? $seltid : $threadIds; overPrint($overprint, $seltid, 'headtopic'); defined('AJAX') && showOverPrint($overprint, $seltid, 'headtopic', 1, $nextto); } if ($nextto && count($tidarray) == 1) { $selids = reset($tidarray);
function writeLog() { if (!empty($this->cLog)) { $GLOBALS['db']->update("INSERT INTO pw_creditlog (uid,username,ctype,affect,adddate,logtype,ip,descrip) VALUES " . pwSqlMulti($this->cLog, false)); } $this->cLog = array(); }
/** * 更新在线信息 * @return void */ function updateOnlineInfo() { global $tdtime, $timestamp, $userinbbs, $guestinbbs; $typeid = pwEscape(get_date($this->t, 'G')); $date = pwEscape(get_date($this->t, 'Y-m-d')); $userinbbs = intval($userinbbs); $guestinbbs = intval($guestinbbs); $this->_db->update("REPLACE INTO `pw_statistics_daily` (`name`,`typeid`,`date`,`value`,`updatetime`)\n\t\t\t\tVALUES('userinbbs',{$typeid},{$date},{$userinbbs},{$this->t}),\n\t\t\t\t('guestinbbs',{$typeid},{$date},{$guestinbbs},{$this->t})\n\t\t\t"); $lastday = pwEscape(get_date($tdtime - 86400, 'Y-m-d')); $this->_db->update("DELETE FROM `pw_statistics_daily` WHERE (name='userinbbs' OR name='guestinbbs') AND `date`<{$lastday}"); //$this->_db->update("UPDATE `pw_bbsinfo` SET `last_statistictime`=$this->t WHERE id=1"); pwQuery::update('pw_bbsinfo', 'id=:id', array(1), array('last_statistictime' => $this->t)); /*归总前日登录数*/ if (procLock('statisticLogin')) { $query = $this->_db->query("SELECT COUNT(`typeid`) AS `value`,`date` FROM `pw_statistics_daily` \n\t\t\t\tWHERE name='login' AND `typeid`>0 AND `date`<'{$this->day}'\n\t\t\t\tGROUP BY `date`"); $logins = array(); while ($rt = $this->_db->fetch_array($query)) { $rt['typeid'] = 0; $rt['name'] = 'login'; $rt['updatetime'] = $timestamp; $logins[$rt['date']] = $rt; } $cnt = count($logins); if ($cnt > 0) { $this->_db->update("REPLACE INTO `pw_statistics_daily` (`value`,`date`,`typeid`,`name`,`updatetime`) VALUE " . pwSqlMulti($logins)); $this->_db->affected_rows() == $cnt && $this->_db->query("DELETE FROM `pw_statistics_daily` WHERE `name`='login' AND `date`<'{$this->day}' AND `typeid`>0"); } procUnLock('statisticLogin'); } }
function insert_tag($tid, $tags) { global $db; $sql = array(); $tags = explode(" ", $tags); foreach ($tags as $key => $value) { if (!$value) { continue; } $rt = $db->get_one("SELECT tagid FROM pw_tags WHERE tagname=" . pwEscape($value)); if (!$rt) { $db->update("INSERT INTO pw_tags SET " . pwSqlSingle(array('tagname' => $value, 'num' => 1))); $tagid = $db->insert_id(); } else { $tagid = $rt['tagid']; $db->update("UPDATE pw_tags SET num=num+1 WHERE tagid=" . pwEscape($tagid)); } $sql[] = array($tagid, $tid); } $sql && $db->update("INSERT INTO pw_tagdata (tagid,tid) VALUES " . pwSqlMulti($sql)); }
/** * @param $tid * @param $postTable * @return unknown_type */ function addPostIndex($tid, $step) { $ptable = PostIndexDB::getPostTable($tid); $rt = $this->db->get_one("SELECT count(*) AS sum FROM {$ptable} p WHERE p.tid = " . pwEscape($tid)); $count = $rt['sum']; !$step && ($step = 1); $next = $step + 1; $start = ($step - 1) * $this->p_c; $limit = pwLimit($start, $this->p_c); $sql = "SELECT p.tid, p.pid, p.postdate, p.authorid\r\n\t\t\t\tFROM {$ptable} p\r\n\t\t\t\tWHERE p.tid = " . pwEscape($tid) . " ORDER BY p.postdate {$limit}"; $query = $this->db->query($sql); while ($rt = $this->db->fetch_array($query)) { $f_data[] = array($rt["tid"], $rt["pid"]); } if (!empty($f_data)) { $this->db->update("INSERT INTO pw_postsfloor(tid,pid) VALUES " . pwSqlMulti($f_data)); } $floor = $this->getMaxFloorByTid($tid); if ($count > $floor) { return $next; } else { #@cn0zz 添加索引完成后,才能修改帖子状态 $sql = "UPDATE pw_threads SET tpcstatus = tpcstatus | 2 WHERE tid =" . pwEscape($tid); $this->db->update($sql); $threads = L::loadClass('Threads'); $threads->delThreads($tid); return 0; } }
function setForumsTopped($tid, $fid, $topped, $t = 0) { if ($tid && $fid && $topped > 0) { global $db; list($catedbs, $top_1, $top_2, $top_3) = getForumListForHeadTopic($fid); $topAll = array(); if ($topped == 1) { $topAll = array_keys((array) $top_1); } elseif ($topped == 2) { $topAll = array_keys((array) $top_2); } elseif ($topped == 3) { $topAll = array_keys((array) $top_3); } $_topped = array(); foreach ($topAll as $key => $value) { $_topped[] = array('fid' => $value, 'tid' => $tid, 'pid' => '0', 'floor' => $topped, 'uptime' => $fid, 'overtime' => $t); } !empty($_topped) && $db->update("REPLACE INTO pw_poststopped (fid,tid,pid,floor,uptime,overtime) values " . pwSqlMulti($_topped)); } }
if ($rt['medals'] && strpos(",{$rt['medals']},", ",{$medal},") !== false) { continue; } elseif ($rt['medals']) { $medals = "{$rt['medals']},{$medal}"; } else { $medals = $medal; } $medaluser[] = array($rt['uid'], $medal); if ($md_ifmsg) { $message = array('toUser' => $rt['username'], 'subject' => 'metal_add', 'content' => 'metal_add_content', 'other' => array('mname' => $_MEDALDB[$medal]['name'], 'windid' => $windid, 'reason' => $reason)); pwSendMsg($message); } $medals == ',' && ($medals = ''); $db->update("UPDATE pw_members SET medals=" . pwEscape($medals, false) . "WHERE uid=" . pwEscape($rt['uid'], false)); if ($medaluser) { $db->update("INSERT INTO pw_medaluser(uid,mid) VALUES " . pwSqlMulti($medaluser)); } } $db->free_result(); unset($medal, $medals, $reason); $db->update("UPDATE pw_medalslogs SET " . pwSqlSingle(array('awarder' => $windid, 'awardtime' => $timestamp, 'action' => 1)) . " WHERE id IN({$id})"); updatemedal_list(); refreshto("{$basename}&action=approve", 'operate_success'); } elseif ($job == 'del') { $id = GetGP('id'); require_once R_P . 'require/msg.php'; if (is_array($id)) { foreach ($id as $key => $val) { $val = (int) $val; if ($val) { $id[$key] = $val;
$feed[$winduid] = array('uid' => $rt['uid'], 'friend' => $rt['username']); } else { $title = Char_cv(getLangInfo('writemsg', 'friend_accept_title', array('username' => $windid))); $writemsg = Char_cv(getLangInfo('writemsg', 'friend_accept_content', array('uid' => $winduid, 'username' => $windid))); } $feed[$rt['uid']] = array('uid' => $winduid, 'friend' => $windid); $msgdb[] = array($rt['uid'], '0', 'SYSTEM', 'rebox', '1', $timestamp, $title, $writemsg); } else { $deldb[] = $rt['uid']; } } if ($frdb) { $db->update("UPDATE pw_friends" . " SET status='0',descrip='',joindate=" . pwEscape($timestamp) . " WHERE friendid=" . pwEscape($userdb['uid']) . " AND uid IN(" . pwImplode($frdb) . ")"); $fcount = count($frdb); if ($adddb) { $db->update("REPLACE INTO pw_friends (uid,friendid,status,joindate,descrip) VALUES " . pwSqlMulti($adddb, false)); $count = count($adddb); } require_once R_P . 'require/msg.php'; require_once R_P . 'require/postfunc.php'; send_msgc($msgdb); foreach ($feed as $key => $log) { pwAddFeed($key, 'friend', '', $log); } } if ($deldb) { $db->update("DELETE FROM pw_friends WHERE friendid=" . pwEscape($userdb['uid']) . " AND uid IN(" . pwImplode($deldb) . ")"); $count -= count($deldb); } if ($fcount) { $db->update("UPDATE pw_memberdata SET f_num=f_num+1 WHERE uid IN (" . pwImplode($frdb) . ")");
for ($i = 0; $i < 5; $i++) { if ($step < $total) { $fourmid = $arr_forumkeys[$step]; !$forum[$fourmid] && adminmsg('undefined_action'); $step++; if ($forum[$fourmid]['type'] == 'category') { continue; } else { $arr_posts = array(); $arr_posts = $getinfo->hotfavor($fourmid, $db_sortnum); $arr_posts = arr_unique($arr_posts); foreach ($arr_posts as $key => $value) { $arr_posts[$key]['type'] = 'hotfavor'; } if ($arr_posts) { $sql = "INSERT INTO pw_elements(id,mark,value,type) VALUES" . pwSqlMulti($arr_posts, false); $db->update($sql); } } } else { break; } } if ($step < $total) { adminmsg('updatecache_total_step', "{$basename}&action=update&type=hotfavor&step={$step}"); } } adminmsg('operate_success', "{$basename}"); } } else { adminmsg('undefined_action');
$db->update("INSERT INTO pw_msg(touid,fromuid,username,type,ifnew,mdate) VALUES " . pwSqlMulti($sqladd)); $mid = $db->insert_id(); $mc_sql = $ml_sql = array(); for ($i = 0; $i < $s_num; $i++) { $mc_sql[] = array($mid, $msg_title, $atc_content); if (isset($msglog[$i])) { $ml_sql[] = array($mid, $winduid, $msglog[$i], $timestamp, 'send'); $ml_sql[] = array($mid, $msglog[$i], $winduid, $timestamp, 'receive'); } $mid++; } if ($mc_sql) { $db->update("REPLACE INTO pw_msgc(mid,title,content) VALUES " . pwSqlMulti($mc_sql)); } if ($ml_sql) { $db->update("REPLACE INTO pw_msglog(mid,uid,withuid,mdate,mtype) VALUES " . pwSqlMulti($ml_sql)); } } if ($ifuids) { updateNewpm($ifuids, 'add'); } Showmsg('send_success'); } } elseif ($action == 'pcifalipay') { $trade = $db->get_one("SELECT tradeinfo FROM pw_memberinfo WHERE uid=" . pwEscape($winduid)); $trade = unserialize($trade['tradeinfo']); if (!$trade['alipay']) { echo 'fail'; } ajax_footer(); } elseif ($action == 'pcdelimg') {
<?php !function_exists('readover') && exit('Forbidden'); $pwSQL = array(); $invcodes = $fistinvcode = ''; for ($i = 0; $i < $rt['number']; $i++) { $invcode = randstr(16); $i == 0 && ($fistinvcode = $invcode); $invcodes .= ($invcodes ? "\n" : '') . $invcode; $pwSQL[] = array('invcode' => $invcode, 'uid' => 0, 'createtime' => $timestamp); } if ($pwSQL) { $db->update("INSERT INTO pw_invitecode (invcode,uid,createtime) VALUES " . pwSqlMulti($pwSQL)); $inv_id = $db->insert_id(); $db->update("UPDATE pw_clientorder SET paycredit=" . pwEscape($inv_id) . ' WHERE id=' . pwEscape($rt['id'])); } require_once R_P . 'require/sendemail.php'; $sendinfo = sendemail($rt['payemail'], 'email_invite_subject', 'email_invite_content', 'email_additional'); $ret_url = '$regurl?invcode=' . $fistinvcode;
function _runCn() { if ($this->cnData) { $this->_db->update("INSERT INTO pw_weibo_cnrelations (cyid, mid) VALUES " . pwSqlMulti($this->cnData)); } }
function delReply($replydb, $recount = true, $recycle = false) { $tids = $pids = $_tids = $_pids = $ptable_a = $recycledb = $delfids = $deltids = $deluids = $attachdb = $deltpc = array(); foreach ($replydb as $key => $reply) { $tids[$reply['tid']] = 1; if ($reply['pid'] == 'tpc') { $reply['pid'] = 0; } if ($recycle) { $recycledb[] = array('pid' => $reply['pid'], 'tid' => $reply['tid'], 'fid' => $reply['fid'], 'deltime' => $GLOBALS['timestamp'], 'admin' => $GLOBALS['windid']); } if ($reply['pid'] > 0) { if ($reply['aid']) { $_tids[$reply['tid']] = $reply['tid']; $_pids[$reply['pid']] = $reply['pid']; } if ($reply['fid'] > 0) { $deluids[$reply['authorid']]++; if ($reply['ifcheck']) { $delfids[$reply['fid']]['replies']++; $deltids[$reply['tid']]++; } } $ptable_a[$reply['ptable']] = 1; $pids[] = $reply['pid']; } else { $reply['fid'] > 0 && $reply['ifcheck'] && $deluids[$reply['authorid']]++; $deltpc[] = $reply['tid']; } } if (!$tids) { return true; } require_once R_P . 'require/updateforum.php'; $delpids = pwImplode($pids); if ($recycle) { foreach ($ptable_a as $key => $val) { $pw_posts = GetPtable($key); $this->db->update("UPDATE {$pw_posts} SET tid='0',fid='0' WHERE pid IN({$delpids})"); } if ($recycledb) { $this->db->update("REPLACE INTO pw_recycle (pid,tid,fid,deltime,admin) VALUES " . pwSqlMulti($recycledb)); } } else { foreach ($ptable_a as $key => $val) { $pw_posts = GetPtable($key); $this->db->update("DELETE FROM {$pw_posts} WHERE pid IN({$delpids})"); } } if ($delpids) { $this->resetReplayToppedFloor($replydb); } if ($deltpc) { $this->db->update("UPDATE pw_threads SET ifshield='2' WHERE tid IN (" . pwImplode($deltpc) . ')'); $pw_attachs = L::loadDB('attachs'); $attachdb += $pw_attachs->getByTid($deltpc, 0); !$recycle && delete_tag(pwImplode($deltpc)); } if ($_tids) { $pw_attachs = L::loadDB('attachs'); $attachdb += $pw_attachs->getByTid($_tids, $_pids); } if ($attachdb) { delete_att($attachdb, !$recycle); pwFtpClose($GLOBALS['ftp']); } foreach ($deluids as $uid => $value) { $this->db->update("UPDATE pw_memberdata SET postnum=postnum-" . pwEscape($value) . " WHERE uid=" . pwEscape($uid)); } if ($deltopic = $this->delReplyTopic(array_keys($tids), $deltpc, $recount, $recycle)) { foreach ($deltopic as $fid => $value) { $delfids[$fid]['topic'] = $value; } } if ($delfids) { $threadlist = L::loadClass("threadlist"); foreach ($delfids as $fid => $value) { $threadlist->refreshThreadIdsByForumId($fid); updateForumCount($fid, -$value['topic'], -$value['replies']); } } if ($deltids && !$recount) { foreach ($deltids as $tid => $value) { $this->db->update("UPDATE pw_threads SET replies=replies-" . pwEscape($value) . " WHERE tid=" . pwEscape($tid)); } } return !empty($deltopic); }
function send_msgc($msg, $isNotify = true) { global $db; if (!is_array($msg)) { return; } $uid = $sql = $mc_sql = array(); foreach ($msg as $k => $v) { if (is_array($v)) { $sql[] = array($v[0], $v[1], $v[2], $v[3], $v[4], $v[5]); $uid[] = $v[0]; } } if ($sql) { $db->update("INSERT INTO pw_msg(touid,fromuid,username,type,ifnew,mdate) VALUES " . pwSqlMulti($sql, false)); $mid = $db->insert_id(); foreach ($msg as $k => $v) { if (is_array($v)) { $mc_sql[] = array($mid++, $v[6], $v[7]); } } if ($mc_sql) { $db->update("REPLACE INTO pw_msgc(mid,title,content) VALUES " . pwSqlMulti($mc_sql, false)); } updateNewpm($uid, 'add'); } }
for ($i = 0; $i < count((array) $typename['new']); $i++) { if ($typename['new'][$i] != '') { $insertdb[] = array('id' => '', 'sort' => (int) $order['new'][$i], 'typename' => $typename['new'][$i], 'state' => $states['new'][$i]); } } $sql = "SELECT p.* FROM pw_wappushtype p WHERE p.id is not NULL ORDER BY p.sort DESC"; $query = $db->query($sql); while ($rt = $db->fetch_array($query)) { empty($typename[$rt['id']]) && adminmsg('分类名称不能为空'); if (isset($typename[$rt['id']])) { if ($rt['state'] != $states[$rt['id']] || $rt['sort'] != $order[$rt['id']] || $rt['typename'] != $typename[$rt['id']]) { $insertdb[] = array('id' => $rt['id'], 'sort' => (int) $order[$rt['id']], 'typename' => $typename[$rt['id']], 'state' => $states[$rt['id']]); } } } !empty($insertdb) && $db->update("REPLACE INTO pw_wappushtype (`id`,`sort`,`typename`,`state`) VALUES" . pwSqlMulti($insertdb)); adminmsg('operate_success'); } else { InitGP(array('page'), 'GP'); $count = $db->get_value("SELECT COUNT(*) FROM pw_wappushtype p WHERE p.id is not NULL"); list($pages, $limit) = pwLimitPages($count, $page, "{$basename}&"); $pushTypes = array(); $sql = "SELECT p.* FROM pw_wappushtype p WHERE p.id is not NULL ORDER BY p.sort ASC {$limit}"; $query = $db->query($sql); while ($rt = $db->fetch_array($query)) { $pushTypes[] = $rt; } } } function pwLimitPages($count, $page, $pageurl) {
function updateadmin() { global $db; $f_admin = array(); $query = $db->query("SELECT forumadmin FROM pw_forums"); while ($forum = $db->fetch_array($query)) { $adminarray = explode(",", $forum['forumadmin']); foreach ($adminarray as $key => $value) { $value = trim($value); if ($value) { $f_admin[] = $value; } } } $f_admin = array_unique($f_admin); $query = $db->query("SELECT uid,username,groupid,groups FROM pw_administrators WHERE groupid=5 OR groups LIKE '%,5,%'"); while ($rt = $db->fetch_array($query)) { if (!in_array($rt['username'], $f_admin)) { if ($rt['groupid'] == '5') { $db->update("UPDATE pw_members SET groupid='-1' WHERE uid='{$rt['uid']}'"); $rt['groupid'] = -1; } else { $rt['groups'] = str_replace(',5,', ',', $rt['groups']); $rt['groups'] == ',' && ($rt['groups'] = ''); $db->update("UPDATE pw_members SET groups='{$rt['groups']}' WHERE uid='{$rt['uid']}'"); } if ($rt['groupid'] == '-1' && $rt['groups'] == '') { admincheck($rt['uid'], $rt['username'], $rt['groupid'], $rt['groups'], 'delete'); } else { admincheck($rt['uid'], $rt['username'], $rt['groupid'], $rt['groups'], 'update'); } } } if ($f_admin) { $usernames = pwImplode($f_admin); $pwSQL = array(); $query = $db->query("SELECT m.uid,m.username,m.groupid,m.groups,a.groupid AS gid,a.groups AS gps FROM pw_members m LEFT JOIN pw_administrators a ON m.uid=a.uid WHERE m.username IN({$usernames})"); while ($rt = $db->fetch_array($query)) { if ($rt['groupid'] == '-1') { $rt['groups'] = str_replace(',5,', ',', $rt['groups']); $rt['groups'] == ',' && ($rt['groups'] = ''); $db->update("UPDATE pw_members SET groupid='5',groups=" . pwEscape($rt['groups']) . ' WHERE uid=' . pwEscape($rt['uid'])); $rt['groupid'] = 5; } elseif ($rt['groupid'] != '5' && strpos($rt['groups'], ',5,') === false) { $rt['groups'] = $rt['groups'] ? $rt['groups'] . '5,' : ",5,"; $db->update("UPDATE pw_members SET groups=" . pwEscape($rt['groups']) . ' WHERE uid=' . pwEscape($rt['uid'])); } if ($rt['groupid'] != $rt['gid'] || $rt['groups'] != $rt['gps']) { $pwSQL[] = array($rt['uid'], $rt['username'], $rt['groupid'], $rt['groups']); } } if ($pwSQL) { $db->update("REPLACE INTO pw_administrators (uid,username,groupid,groups) VALUES " . pwSqlMulti($pwSQL)); } } }
} if ($u) { $userstatus = $db->get_value("SELECT userstatus FROM pw_members WHERE uid=" . pwEscape($u)); $friendcheck = getstatus($userstatus, 3, 3); if ($friendcheck == 2) { Showmsg('friend_not_add'); } elseif ($friendcheck == 1) { Showmsg('friend_add_check'); } if (getOneFriend($u)) { Showmsg('mode_o_is_friend'); } $pwSQL = array(); $pwSQL[] = array($winduid, $u, $timestamp, 0); $pwSQL[] = array($u, $winduid, $timestamp, 0); $db->update("REPLACE INTO pw_friends(uid,friendid,joindate,status) VALUES " . pwSqlMulti($pwSQL, false)); $db->update("UPDATE pw_memberdata SET f_num=f_num+1 WHERE uid=" . pwEscape($winduid) . " OR uid=" . pwEscape($u)); $myurl = $db_bbsurl . "/" . $baseUrl . "q=user&u=" . $winduid; $msg = array('toUid' => $u, 'subject' => 'o_friend_success_title', 'content' => 'o_friend_success_cotent', 'other' => array('uid' => $winduid, 'username' => $windid, 'myurl' => $myurl)); require_once R_P . 'require/msg.php'; pwSendMsg($msg); //job sign $friend = $db->get_one("SELECT username FROM pw_members WHERE uid=" . pwEscape($u)); initJob($winduid, "doAddFriend", array('user' => $friend['username'])); echo "success|"; ajax_footer(); } else { Showmsg('mode_o_not_uid'); } } elseif ($a == 'showcommlist') { InitGP(array('type', 'id'), 'P');
function addLog($creditlog, $username, $uid, $logtype) { global $db, $creditset, $credit, $timestamp, $db_ifcredit, $onlineip; $credit_pop = ''; $cLog = array(); empty($creditset) && ($creditset = array()); foreach ($creditset as $key => $affect) { if (isset($credit->cType[$key]) && $affect != 0 && isset($creditlog[$key])) { $log['username'] = Char_cv($username); $log['cname'] = $credit->cType[$key]; $log['affect'] = $affect; $log['affect'] > 0 && ($log['affect'] = '+' . $log['affect']); $log['descrip'] = Char_cv(getLangInfo('creditlog', $logtype, $log)); $credit_pop .= $key . ":" . $log['affect'] . '|'; $cLog[] = array($uid, $log['username'], $key, $affect, $timestamp, $logtype, $onlineip, $log['descrip']); } } if ($db_ifcredit && $credit_pop) { //Credit Changes Tips $credit_pop = $logtype . '|' . $credit_pop; $db->update("UPDATE pw_memberdata SET creditpop=" . pwEscape($credit_pop) . " WHERE uid=" . pwEscape($uid), 0); } if (!empty($cLog)) { $db->update("INSERT INTO pw_creditlog (uid,username,ctype,affect,adddate,logtype,ip,descrip) VALUES " . pwSqlMulti($cLog, false)); } $cLog = array(); }
$vtype = 'array'; $value = serialize($value); } $configdb[$var] = array($var, $vtype, $value); } } } if (!empty($configdb)) { $names = array_keys($configdb); $query = $db->query('SELECT db_name,vtype,db_value FROM pw_config WHERE db_name IN (' . pwImplode($names, false) . ')'); while ($rt = $db->fetch_array($query)) { if (isset($configdb[$rt['db_name']])) { if ($rt['db_value'] != $configdb[$rt['db_name']]) { $db->update("UPDATE pw_config SET " . pwSqlSingle(array('db_value' => $configdb[$rt['db_name']][2], 'vtype' => $configdb[$rt['db_name']][1])) . ' WHERE db_name=' . pwEscape($rt['db_name'])); } $configdb[$rt['db_name']] = ''; } } $db->free_result($query); $pwSqlMulti = pwSqlMulti($configdb); $pwSqlMulti && $db->update('INSERT INTO pw_config (db_name,vtype,db_value) VALUES' . $pwSqlMulti); updatecache_c(); if (!empty($ftp)) { updatecache_ftp(); } if (!empty($mail)) { updatecache_ml(); } } adminmsg('operate_success'); }