关于onethink的数据库备份还原功能不解

浏览:2537 发布日期:2015/09/01 分类:求助交流
帮助手册上说
success和error方法的第一个参数表示提示信息,第二个参数表示跳转地址,第三个参数是跳转时间(单位为秒)

但onethink里数据库还原有这样的代码    public function import($time = 0, $part = null, $start = null){
        if(is_numeric($time) && is_null($part) && is_null($start)){ //初始化
            //获取备份文件信息
            $name  = date('Ymd-His', $time) . '-*.sql*';
            $path  = realpath(C('DATA_BACKUP_PATH')) . DIRECTORY_SEPARATOR . $name;
            $files = glob($path);
            $list  = array();
            foreach($files as $name){
                $basename = basename($name);
                $match    = sscanf($basename, '%4s%2s%2s-%2s%2s%2s-%d');
                $gz       = preg_match('/^\d{8,8}-\d{6,6}-\d+\.sql.gz$/', $basename);
                $list[$match[6]] = array($match[6], $name, $gz);
            }
            ksort($list);

            //检测文件正确性
            $last = end($list);
            if(count($list) === $last[0]){
                session('backup_list', $list); //缓存备份列表
                $this->success('初始化完成!', '', array('part' => 1, 'start' => 0));
            } else {
                $this->error('备份文件可能已经损坏,请检查!');
            }
        } elseif(is_numeric($part) && is_numeric($start)) {
            $list  = session('backup_list');
            $db = new Database($list[$part], array(
                'path'     => realpath(C('DATA_BACKUP_PATH')) . DIRECTORY_SEPARATOR,
                'compress' => $list[$part][2]));
关键在这里
success('初始化完成!', '', array('part' => 1, 'start' => 0));

也就是说第三处 放时间的地方 变成了 数组 而且还能传值

我直接用这部分放自己TP程序里 发现无法传值 求解?

我改成了
$this->success('初始化成功!', U('datebase/do_import/part/1/start/0'), 0); 才能传

是不是别的哪里还要改一下呢?

改了之后 可以正常初始化了 然后开始从第一行还原
结果出这个

SQLSTATE[42000]: Syntax error or access violation: 1065 Query was empty

唉。。。

我有加载Database.class.php
最佳答案
评论( 相关
后面还有条评论,点击查看>>