• Discuz X2 数据库备份功能分析


    今天由于需要一个不使用mysqldump的数据库导出功能,就翻了下DX2的实现,想模仿大牛的做法自己处理。

    废话少说。直接上图看流程。

    首先是找到实现此功能的源码。我来到了创始人的数据库功能。

    然后,很明显,功能在DiscuzX2_SC_UTF8\source\admincp文件夹,根据action参数可知,对应的文件是admincp_db.php

    有点汗。。。。。这个文件里面存在很多不属于函数的行。。。。直接搜索export

    哈,找到了。第42行。。。。

    44行这个if是神马??看了下里面的功能,基本上都是拼接html。那可以推测是自定义备份或者其他选项功能的显示了。这次不需要看这个功能。。。直接跳过。。。

    直接来到else,第194行,可以找到sqldumptablestruct,第200行,sqldumptable。从名字可以推测是模拟sqldump功能的两个函数了。直接搜索。找到了这个函数,sqldumptablestruct1032行,该函数首先通过SHOW CREATE TABLE 语句获取表的结构。这个SHOW CREATE TABLE语句能够生成创建本表的sql

     后面的语句便是将表的各种属性,包括自增列、表引擎、字符集等设置生成为sql语句,与SHOW CREATE TABLE生成的语句一起拼接为sql脚本使用的完整结构。

    1076行是sqldumptable函数。这个函数首先使用SHOW FULL COLUMNS FROM获取各个字段。然后。。。其实最悲催的在1104行。。。。

    数据竟然是使用select * from这一最常用的语句从数据库读出的。然后后面的我想不分析大家也知道是怎么做了。。。。

    就写到这里吧。。。。写某教授的作业去,我可不想挂他的课。。。。。

     

    这个内容同步发在bbs.phpchina.com了http://bbs.phpchina.com/forum.php?mod=viewthread&tid=229189

  • 相关阅读:
    ubuntu下erlang man的安装
    ranch分析学习(四)
    ranch分析学习(三)
    ranch分析学习(二)
    ranch分析学习(一)
    IIS 配置错误解决方法集合
    Visual Studio 2013中添加mimeType
    wordpress 开发日志及技巧收集
    css3 动画
    高宽比例计算方法及等比高宽修改计算方法
  • 原文地址:https://www.cnblogs.com/sztsian/p/2305350.html
Copyright © 2020-2023  润新知