Это моя функция для загрузки zip-файла базы данных, она работает нормально, но я хочу вставить это в базу данных, а также импортировать ее в базу данных, динамически выбирая файл sql

public function db_backup(){
    date_default_timezone_set('Asia/Calcutta');
    $this->load->dbutil(); 
    $prefs = array( 
        'format' => 'zip',  
        'add_drop' => TRUE,  
        'add_insert'=> TRUE, 
        'newline' => "\n"   
    ); 
    $backup =  $this->dbutil->backup($prefs); 
    $this->load->helper('file'); 
    $this->load->helper('download'); 
    $this->zip->archive(FCPATH.'backup/database/'.date('Y-m-d-His').'DbBackup.zip');
}

please provide me solution i tried vaious examples nothing works

public function restoredb($id = ''){


    $isi_file = file_get_contents('./backups/XXXXXXX.sql'); #here I want to give dynamic path
    $query = rtrim( $isi_file, "\n;" );
    $array_query = explode(";", $query);

    foreach($array_query as $query){
        $this->db->query($query);
    }

}

Выше функция восстановления базы данных, но не работает, как я хотел

php
0
user6551260 25 Апр 2017 в 08:34

2 ответа

Лучший ответ
$backup = read_file('path/to/file.sql');
$sql_clean = '';
    foreach (explode("\n", $backup) as $line){
        if(isset($line[0]) && $line[0] != "#"){
            $sql_clean .= $line."\n";
        }
    }
    foreach (explode(";\n", $sql_clean) as $sql){
        $sql = trim($sql);
        if($sql){
            $this->db->query($sql);
        } 
    }

Попробуйте это, я надеюсь, это поможет

0
Ghugu 28 Апр 2017 в 04:58

Попробуйте это при экспорте и импорте данных

Экспорт

$cmd = "mysqldump -u $DBUSER --password=$DBPASSWD -h$HOST $DATABASE > backup.sql";   
        shell_exec( $cmd );

Импорт / Восстановление

$cmd = "mysql -u $DBUSER --password=$DBPASSWD -h$HOST -D$database < backup.sql";   
        shell_exec( $cmd );
0
Jeffrey Hitosis 25 Апр 2017 в 05:48
43602403