1.在生成页面前先取得文章的最大ID并+1,然后写入页面,再写入数据库。这样做可能会出现 最大ID+1 相等,所以你最好写入前又要select 数据库一次。建议方法:(FYI)
用auto_increment字段,先向数据库中插入一条空记录,用mysql_insert_id() 这个函数取得返回的ID值。再用这个作为文章的文件名。
用auto_increment字段,先向数据库中插入一条空记录,用mysql_insert_id() 这个函数取得返回的ID值。再用这个作为文章的文件名。
先把文章写入数据库,然后再得到当前文章的ID, 如果先写入数据库就不知道页面的路径。to coolstr(大只佬)
最大id+1相等? 这是不可能的,文章的id是auto_increment字段,怎么可能重复呢?
现在想在生成静态页面时将文章在数据库的ID写入页面中,以便评论时使用”
此时保证唯一性的标志实际上是含路径的文件名,因此在评论时只需根据这个就可以识别了,并不需要附加其他的识别标志。
怎么会呢,你可以这样做三,含路径的文件名(注:只是文件名字)先生成,写入数据库后,再得到id,
最后才根据先前产生的文件名来生成真正的文件
我就是这样做的,不过还是要select一次另外,含路径的文件名是唯一的,还可以根据唠叨大哥说的做
好像有点多此一举
不过路径名一般会很长,看着不太舒服。to cloudchen
最大id+1肯定不行,时间也不行。都会有并发冲突
其实静态页面的路径在插入数据库之前是可以算出来的,
路径是可以算出来,如果用时间也会产生并发问题,那么应该用什么来做?
我想用 使用md5处理后的页面路径的32位字符串 做为pk字段,
不知道这个会不会发生重复?
1、没有这个必要,因为是不可逆的。反而还要增加组装校验的开销
2、重复的概率极小,但必然是存在的
1、你可以先定一下生成静态页面的规则.2、你可以在生成一个静态页面时,保存页面的路径(刚操作完,就不知道路径的话,就狂晕)
然后再UPDATE一下那条记录就行。