很多人用了Z-BLOG PHP版本,写了一些文章,因为某些原因删除了这些文章造成了文章ID的连续性被断开了。我看到鸟儿在博客里面给出了解决办法:复制下面这段PHP脚本到你的网站空间中运行,可以完美解决ID不连续的问题,强迫症治愈神器。本人已经亲测,完全可靠,但是注意:仅适用于Zblog php版本!
<?php $hostname_blog = "localhost";//数据库地址 $database_blog = "liangxinname";//数据库名 $username_blog = "root";//数据库用户名 $password_blog = "";//数据库密码 $blog = mysql_pconnect($hostname_blog, $username_blog, $password_blog) or trigger_error(mysql_error(),E_USER_ERROR); $no = 1; function change_id($id) { global $no; // 修改post id,并修改评论的对应关系 $sql = 'update zbp_post set log_ID = ' . $no . ' where log_ID = ' . $id; mysql_query($sql); $sql = 'update zbp_comment set comm_LogID = ' . $no . ' where comm_LogID = ' . $id; mysql_query($sql); $no = $no + 1; } mysql_select_db($database_blog, $blog); $query_postRecord = "SELECT log_ID FROM zbp_post ORDER BY log_ID ASC"; $all_postRecord = mysql_query($query_postRecord); $row_postRecord = mysql_fetch_assoc($all_postRecord); do { change_id( $row_postRecord['log_ID'] ); } while ($row_postRecord = mysql_fetch_assoc($all_postRecord)); // 重新设置post id自增起点 mysql_query('alter table zbp_post AUTO_INCREMENT = ' . $no); echo 'ok'; ?>
已知问题:会导致多说等社会化评论插件的评论,错位,比如本来在ID为50的文章下,现在可能跑到ID47下面去了… 没办法解决..(这是必然的,目前没有更好的方法实现了,不过个人觉得已经很完美了,够用即可,不是吗?)
- 本文固定链接: https://www.liangxin.name/sitebuild/zblog/2015/11/14/?p=1065.html
- 转载请注明: xindao 于 心岛博客 发表
《解决Zblogphp文章ID不连续的方法》有 2 条评论