代码拉取完成,页面将自动刷新
适用于thinkphp5.0小量数据库导入导出类库
// git databases存放至函数扩展目录extend中
使用 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();
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。