1 Star 1 Fork 0

K?Germany:De / thinkphp5.0--databases

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

thinkphp-databases

适用于thinkphp5.0小量数据库导入导出类库

配置

// git databases存放至函数扩展目录extend中

Image text

用法示例

使用 use databases\Databases; 在所需控制器内引用该扩展即可:

<?php
namespace app\controller;
use databases\Databases;
class Index {
    protected $db_model,$datadir;
    public function _initialize()
    {
        $this->datadir = RUNTIME_PATH."backup/";//备份路径
        $this->db_model = new Databases($this->datadir); //实例化
    }
}

下面示例获取数据库下面数据表列表

config('database.prefix') //数据库前缀
public function index() {
        $dataList = $this->db_model->db_list(config('database.prefix'));
        $total = 0;
        foreach ($dataList as $row){
            $total += $row['Data_length'];
        }
        $this->assign('totalSize', $total);
        $this->assign("dataList", $dataList);
        return $this->fetch();
    }

下面示例备份数据库

public function backup(){
		$data = [
		    'tableid' => intval(input('get.tableid')), //默认 0
            'startfrom' => intval(input('get.startfrom')),//默认 0
            'sizelimit' => intval(input('param.sizelimit')), //分卷大小
            'volume' => intval(input('get.volume')) + 1,//默认 1
            'db_prefix' => config('database.prefix') //数据库前缀
        ];
		$tablesarr = input('post.tables/a'); //前台数据库表 array
        $filename = input('get.filename',''); //保存文件名称
		$result = $this->db_model->backup($data,$tablesarr,$filename);
        $this->success($result['msg']);
	}

下面示例恢复数据库列表

public function recover(){
		$do = input("get.do"); //do[del:删除备份文件,import:导入备份]
		if ($do) {
            $files = input("post.files/a",[]); //删除文件名称
            $filename = input("get.filename",''); //备份文件名称
		    $result = $this->db_model->db_recover($do,$files,$filename);
		    $this->success($result['msg']);
		}
		//列出备份文件
		$filelist = $this->db_model->dir_list($this->datadir);
		$files = [];
        foreach ((array)$filelist as $r) {
            $filename = explode('-', basename($r));
            $files[] = array('path' => $r, 'file' => basename($r), 'name' => $filename[0], 'size' => filesize($r), 'time' => filemtime($r));
        }
        rsort($files);
        $this->assign('files', $files);
		return $this->fetch();
	}

空文件

简介

thinkphp5.0备份还原数据库 展开 收起
PHP
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
PHP
1
https://gitee.com/kehuide/databases.git
git@gitee.com:kehuide/databases.git
kehuide
databases
thinkphp5.0--databases
master

搜索帮助

14c37bed 8189591 565d56ea 8189591