马上注册,免费下载更多dz插件网资源。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
分享个小知识,帝国CMS评论分表新评论更新缓存?小编一memcached缓存做例子。为了方便复用我们定义两个函数,一个函数能生成key键值名与SQL的数组。另外一个就不用多说了哈,很明显就是新的评论删除这个key键值名就可以了。- //生成评论分表缓存信息(缓存键值名+拼接SQL语句)function getPlCacheKey($pldatatbs, $pubid, $order = '') {global $dbtbpre, $public_r;$biaoship = $public_r['add_pcurl'] ?: 'meiweny';$biaoshi = str_replace(['http://','https://','/','www.','.'], "", $biaoship);$fenbiaopl = explode(',', $pldatatbs);$unionQuery = '';for ($i = 1; $i < count($fenbiaopl)-1; $i++) {$sql = "select plid, saytime, sayip, username, zcnum, fdnum, userid, saytext, fdnum, floornum, replypl from {$dbtbpre}enewspl_{$fenbiaopl[$i]} where pubid='$pubid'";$unionQuery = $i == 1 ? $sql : $unionQuery . " union all " . $sql;}$finalSql = $unionQuery . $order; $cacheKey = 'pc' . $biaoshi . '_pinglun_' . md5($finalSql);return ['key' => $cacheKey,'sql' => $finalSql];}
复制代码- //删除评论分表缓存function deletePlCache($cacheKey) {global $memcache;if ($memcache === null) {echo "Error: Memcache实例为空!";return false;}return $memcache->delete($cacheKey);}
复制代码 不用讲,这两个东西还是放在/e/class/userfun.php里面哈。接下来我们就在评论发布成功那个文件plfun.php加上如下语句(ecmsEmptyShowKey($keyvname);//清空验证码)下面增加- $hcpagenum = isset($_POST['hcpagenum']) ? (int)$_POST['hcpagenum'] : $public_r['pl_num'];$hcorder = ' order by plid desc limit 0,'.$hcpagenum;$hcResult = getPlCacheKey($plsetr['pldatatbs'], $pubid, $hcorder);deletePlCache($hcResult['key']);
复制代码 接下来就是多表读取的index.php,($order=" order by ".$addorder." limit $offset,$line";)下面增加- $plsqlarray = getPlCacheKey($plr['pldatatbs'], $pubid, $order);$plSql = $plsqlarray['sql'];
复制代码 至此,完美实现了帝国CMS评论分表新有新的评论更新缓存
©DZ插件网所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 本站内容为站长个人技术研究记录或网络,不提供用户交互功能,所有内容版权归原作者所有。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,得到更好的正版服务。 您在本站任何的赞助购买、下载、查阅、回复等行为等均表示接受并同意签订《DZ插件网免责声明协议》。 如有侵权请邮件与我们联系处理: discuzaddons@vip.qq.com 并出示相关证明以便删除。敬请谅解!
|
|