05
2015
11

zblog的Access数据库转MySQL数据库后附件日期变成1970-01-01的处理


刚发现个问题,zblog的Access数据库转MySQL数据库后附件日期都变成1970-01-01了


处理过程:

  一、为保险起先备份数据表zbp_upload


  具体在phpMyAdmin中(比较复杂,由于后边还需用到Navicat,所以直接在Navicat中完成所有操作)

1、在左侧表中点开zbp_upload

2、在右窗口上方菜单中点“操作”

3、在“表选项”功能块,“将表改名为”后输入新名称如zbp_uploadback,然后“执行”

4、在“将表复制到(数据库名.表名):”下的输入框中输入新的表名,选择“只结构”,然后“执行”

一个新的与zbp_upload同结构的表产生了,用第3步的方法将新表改名为zbp_upload

5、将zbp_upload的ul_potsttime字段的类型改成varchar(255),足够长就可以。


  以上操作在Navicat for MySQL中可以通过复制zbp_upload表得到zbp_upload_copy表,然后将zbp_upload表清空,修改ul_posttime字段类型为varchar(50)即可。


  二、接着利用Navicat for MySQL将Access库中的blog_upload表导入mysql的zbp_upload表,注意字段的对应,ul_id,ul_authorid,ul_posttime两个表一致会自动对应,其它字段需手动对应ul_filesize--->ul_size,ul_filename--->ul_name,ul_downnum--->ul_downnums。


  三、导入成功后新建查询,update zbp_upload set ul_posttime=UNIX_TIMESTAMP(ul_posttime),将日期转换为时间戳。


  通过以上操作zbp_upload表就完全正确了,但进入zblog 附件管理后又发现个问题:单数月份上传的附件链接地址不正确,如2015年7月上传的附件本是存在了zb_users/upload/2015/7文件夹下,但附件管理给的图片链接是zb_users/upload/2015/07,月前多了个0。

处理方法:

  修改zb_system/function/lib/upload.php文件,查找“date('m',$this->PostTime)”,将其修改为“str_replace('0', '', date('m',$this->PostTime))


« 上一篇: Zblog php列表页加缩略... 下一篇: mysql UNIX时间戳与日... »
与此文相关的文章,有兴趣就接着看看吧:

 

评论列表:

1.MrDuan  2019-01-21 18:29:21 回复该评论
即日起将原来一位数的月份文件夹中的文件全部移入补0的两位数月份文件夹中,恢复upload.php原程序

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。