返回列表 发布新帖
查看: 11|回复: 0

解决Emlog文章删除后ID不连续的方法教程

1836

主题

52

回帖

1万

积分

管理员

积分
19864
发表于 2025-10-6 12:38:53 | 查看全部 |阅读模式
年初的时候可能搬了几次数据,导致实际文章只有五百多而文章ID已经到了一千多,重要的原因emlog在删除文章后或者误操作数据库之后ID就会断掉,现在只需要简单修改一下代码,后面新增文章的时候就会优先选择断掉的文章ID。
修改步骤
1.到路径下的include/model/log_model.php文件,将原始代码如下:
(emlogpro会有点不同可以延续使用)
/*** 添加文章、页面** @param array $logData* @return int*/function addlog($logData) {    $kItem = array();    $dItem = array();    foreach ($logData as $key => $data) {        $kItem[] = $key;        $dItem[] = $data;    }    $field = implode(\',\', $kItem);    $values = \"\'\" . implode(\"\',\'\", $dItem) . \"\'\";    $this->db->query(\"INSERT INTO \" . DB_PREFIX . \"blog ($field) VALUES ($values)\");    $logid = $this->db->insert_id();    return $logid;}
2.修改为
/**    * 添加文章、页面    *    * @param array $logData    * @return int    */    function addlog($logData) {        $kItem = array();        $dItem = array();        foreach ($logData as $key => $data) {            $kItem[] = $key;            $dItem[] = $data;        }        $field = implode(\',\', $kItem);        $values = \"\'\" . implode(\"\',\'\", $dItem) . \"\'\";        $gidarr[0]=\'0\';        $res = $this->db->query(\"SELECT gid From  \" . DB_PREFIX . \"blog ORDER BY gid ASC\");        while ($row = $this->db->fetch_array($res)) {            $gidarr[] = $row[\'gid\'];        }        foreach($gidarr as $key=>$val){            if($key!=$val){                $field = \'gid,\'.$field;                $values = \"\'\".$key.\"\',\".$values;                break;            }        }        $this->db->query(\"INSERT INTO \" . DB_PREFIX . \"blog ($field) VALUES ($values)\");        $logid = $this->db->insert_id();        return $logid;    }
3.再次发布文章时断的号就会补过来了

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表