zhaobin693 发表于 2013-1-14 10:40:06

非常好,利用CI提供的数据库备份工具之后,使用CI的模型进行还原时出现各种问题,这个问题困扰了许久,也尝试过各种办法,分解SQL,利用query一条一条的执行等等,但没想到问题处在注释部分,利用你给出的正则表达式取出注释部分,完美解决了还原问题

去年明日 发表于 2013-1-14 14:25:28

我用的是crontab 定时执行 mysqlback ,两种方法,那种更优

Rzoro 发表于 2013-1-15 11:27:02

不错啊

Benson 发表于 2017-6-12 14:06:47


case 'add':
                //生成数据库备份
                $this->load->helper('string');
                $this->load->dbutil();
                $prefs = array(
                  'ignore'    => array($this->db->dbprefix('ci_sessions')),
                  'format'    => 'txt'
                );
                $backup = $this->dbutil->backup($prefs);
                $this->load->helper('file');
                write_file($bak_dir.$this->db->database.'_'.date('Ymd').'_'.random_string('alnum', 8).'.sql', $backup);
                $data['mes']="备份成功!";
                $data['backurl']= base_url('/set/backup');
                $this->load->view('templates/note',$data);
                break;
            case 'recover':   //恢复指定数据库
                  $this->load->helper('file');
                  $this->load->helper('string');
                  $file = $bak_dir.$id; //.sql文件实际地址
                  //数据库信息
                  $host = $this->db->hostname;
                  $user = $this->db->username;
                  $pwd= $this->db->password;
                  $db   = $this->db->database;

                  $string = read_file($file);
                  $mysqli = new mysqli($host,$user,$pwd,$db);
                  $mysqli->set_charset("utf8");
                  $result = $mysqli->multi_query($string);
                  $mysqli->close();
                  if($result){
                        $data['mes']="数据库恢复成功!";
                  } else{
                        $data['mes']="数据库恢复失败!";
                  }
                  $data['backurl']= base_url('/set/backup');
                  $this->load->view('templates/note',$data);
                break;

Benson 发表于 2017-6-12 14:08:56

Benson 发表于 2017-6-12 14:06


完美

豪气东来 发表于 2017-6-14 16:10:49

如何备份指定的数据库了?

豪气东来 发表于 2017-6-14 16:14:07

上面的方法,只是备份默认的数据库test,如何备份需要指定的数据库了?

Benson 发表于 2017-6-16 09:24:56

豪气东来 发表于 2017-6-14 16:14
上面的方法,只是备份默认的数据库test,如何备份需要指定的数据库了?

$mysqli = new mysqli($host,$user,$pwd,$db);
将这几个参数改成你要备份的数据库相关信息就好了
页: 1 2 [3]
查看完整版本: CI数据库备份与还原入门小例子