使用php Web应用程序还原数据库备份

时间:2019-07-03 04:58:04

标签: php sql laravel phpmyadmin yii2

不幸的是,几天前我丢失了数据库,但幸运的是我每天都有备份。

不幸的是,几天前我丢失了我的数据库(有些数据不是整个数据库),但是幸运的是我每天都有备份。今天我发现我必须还原180个巨大的数据库。 我需要将每180个数据库(备份)与当前数据库(我的数据库)进行比较,并在数据库中插入不再存在的数据。 一开始,我想使用某些应用程序(例如NAVICAT或db forge studio),但要花费很多时间是不可能的。 而且我还想将SQL测试相互比较,这也是不可能的。

现在我必须构建一个Web应用程序(PHP)来还原数据库,但我不知道如何

如果有人帮助我,我将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:0)

如果文件很大,请不要打开它。流式传输。

$backup = fopen("yourBackUp.sql", "r");

// ...

fclose($backup);

如果文件很多,请使用GLOB

foreach(glob(dirname(__FILE__) . '/*.sql', GLOB_BRACE) as $sql) {
    $backup = fopen($sql, "r");

    // ...
}

如果数据库设置正确,则您将不能插入重复的行。

while (($line = fgets($backup)) !== false)
    try {
        Illuminate\Support\Facades\DB::raw($line);
    } catch ( Exception $e ) { 
        // duplicate row
    }
}

没有看到您所做的事情和程序问题,我们无济于事。