dedecms中arctiny表的一个作用

这个方法适用于什么样的场景呢,比如像我今天遇到的情况,数据库内容丢失了,但是这些文章其实都还在,因为数据库有一个月没备份,所以大概丢了90篇文章,这90篇所生成的html文件依然存在于服务器上,路径也都还在,为了避免影响竞价,必须让新添加的文章不会覆盖老的历史文章,这样的办法就是让新生成的文章id都不会覆盖老文章id,这样就需要增大自动增加的id值,比如说文章的id排到了766,但是我希望id从866开始,就必须要用这种办法,找到arctiny表,然后在表里添加一条数据,把id改为866,就OK了,如下的过程只是定位修改哪张表的过程。

提交新文章时调用的函数如下,
<form name="form1" action="article_add.php" enctype="multipart/form-data" method="post" onsubmit="return checkSubmit()">
... ...
</form>
明显是调用"article_add.php"文件,在提交前会调用checkSubmit()检测所填写内容的合法性。
查看article_add.php会看到如下的函数调用信息:
//生成文档ID
$arcID = GetIndexKey($arcrank,$typeid,$sortrank,$channelid,$senddate,$adminid);
这个地方大概能判断这个函数跟arctiny紧密相关,最后事实也证明其实操作就是针对arctiny
if(empty($arcID))
{
ShowMsg("无法获得主键,因此无法进行后续操作!","-1");
exit();
}
if(trim($title) == '')
{
ShowMsg('标题不能为空', '-1');
exit();
}

从网上找到GetIndexKey的定义,其最主要的内容就是调用:$aid = $dsql->GetLastID();
这个函数定义在:/include/dedesqli.class.php 482 function GetLastID()

//获取上一步INSERT操作产生的ID
function GetLastID()
{
//如果 AUTO_INCREMENT 的列的类型是 BIGINT,则 mysqli_insert_id() 返回的值将不正确。
//可以在 SQL 查询中用 MySQL 内部的 SQL 函数 LAST_INSERT_ID() 来替代。
//$rs = mysqli_query($this->linkID, "Select LAST_INSERT_ID() as lid");
//$row = mysqli_fetch_array($rs);
//return $row["lid"];
return mysqli_insert_id($this->linkID);
}

这是个自增调用的id值返回;

 

s24977143