解决Emlog文章删除后ID不连续的方法教程
年初的时候可能搬了几次数据,导致实际文章只有五百多而文章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.再次发布文章时断的号就会补过来了
THE END