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('dateba
是不是别的哪里还要改一下呢?
改了之后 可以正常初始化了 然后开始从第一行还原
结果出这个
SQLSTATE[42000]: Syntax error or access violation: 1065 Query was empty
唉。。。
我有加载Databa
最佳答案