AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
# 1. 不使用AJAX ``` use phpspirit\databackup\BackupFactory; //自行判断文件夹 $backupdir = ''; if (isset($_POST['backdir']) && $_POST['backdir'] != '') { $backupdir = $_POST['backdir']; } else { $backupdir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'backup' . DIRECTORY_SEPARATOR . date('Ymdhis'); } if (!is_dir($backupdir)) { mkdir($backupdir, 0777, true); } $backup = BackupFactory::instance('mysql', '127.0.0.1:3306', 'test', 'root', 'root'); $backup->setbackdir($backupdir) //设置备份目录 ->setonlystructure(true) //设置是否只备份数据结构 ->setstructuretable(['md_api_group']) //设置哪些表只备份结构不备份数据 。设置了setonlystructure,这行不起作用 ->setvolsize(0.2); //设置分卷大小 do { $result = $backup->backup(); echo str_repeat(' ', 1000); //这里会把浏览器缓存装满 ob_flush(); flush(); if ($result['totalpercentage'] > 0) { echo '完成' . $result['totalpercentage'] . '%<br />'; } } while ($result['totalpercentage'] < 100); ``` # 2. 使用AJAX > 前端代码 ``` <input type="button" value="备份" onclick="backup({})" /> <script> function backup(predate) { $.ajax({ url: 'backupajax.php', type: 'POST', //POST async: true, //或false,是否异步 dataType: 'json', data:predate, success: function (data, textStatus, jqXHR) { if (data.totalpercentage < 100) { backup(data); } } }) } </script> ``` > 后端代码 ``` use phpspirit\databackup\BackupFactory; //自行判断文件夹 $backupdir = ''; if (isset($_POST['backdir']) && $_POST['backdir'] != '') { $backupdir = $_POST['backdir']; } else { $backupdir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'backup' . DIRECTORY_SEPARATOR . date('Ymdhis'); } if (!is_dir($backupdir)) { mkdir($backupdir, 0777, true); } $backup = BackupFactory::instance('mysql', '127.0.0.1:3306', 'test', 'root', 'root'); $result = $backup->setbackdir($backupdir) ->setvolsize(0.2) ->setonlystructure(true) //设置是否只备份数据结构 ->setstructuretable(['md_api_group']) //设置哪些表只备份结构不备份数据 。设置了setonlystructure,这行不起作用 ->ajaxbackup($_POST); echo json_encode($result); ``` >后端返回数据格式 ``` 'nowtable' => $nowtable, //当前正在备份的表 'nowtableidx' => $this->_nowtableidx, //当前正在备份表的索引 'nowtableexeccount' => $this->_nowtableexeccount, //当前表已备份条数 'nowtabletotal' => $this->_nowtabletotal, //当前表总条数 'totalpercentage' => (int) $totalpercentage, //总百分比 'tablepercentage' => (int) $this->_nowtablepercentage, //当前表百分比 ```