不幸的是,几天前我丢失了数据库,但幸运的是我每天都有备份。
不幸的是,几天前我丢失了我的数据库(有些数据不是整个数据库),但是幸运的是我每天都有备份。今天我发现我必须还原180个巨大的数据库。 我需要将每180个数据库(备份)与当前数据库(我的数据库)进行比较,并在数据库中插入不再存在的数据。 一开始,我想使用某些应用程序(例如NAVICAT或db forge studio),但要花费很多时间是不可能的。 而且我还想将SQL测试相互比较,这也是不可能的。
现在我必须构建一个Web应用程序(PHP)来还原数据库,但我不知道如何
如果有人帮助我,我将不胜感激。
谢谢。
答案 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
}
}
没有看到您所做的事情和程序问题,我们无济于事。