Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php web应用程序恢复数据库备份_Php_Sql_Laravel_Phpmyadmin_Yii2 - Fatal编程技术网

使用php web应用程序恢复数据库备份

使用php web应用程序恢复数据库备份,php,sql,laravel,phpmyadmin,yii2,Php,Sql,Laravel,Phpmyadmin,Yii2,不幸的是,几天前我丢失了我的数据库,但幸运的是我每天都有备份 不幸的是,我丢失了我的数据库几天前,我的一些数据不是完整的数据库,但幸运的是我每天都有备份。今天我发现我必须恢复180个巨大的数据库。 我需要将每180个数据库备份与当前的dbmy数据库进行比较,并插入数据库中不再存在的数据。 开始时,我想使用一些应用程序,比如Avicat或db forge studio,但这不可能花费很多时间。 我还想比较一下SQL测试,但这也不可能 现在我必须构建一个web应用程序PHP来恢复数据库,但我不知道如

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

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

现在我必须构建一个web应用程序PHP来恢复数据库,但我不知道如何恢复

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


谢谢。

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

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

// ...

fclose($backup);
如果您有许多文件,请使用GLOB

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

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

如果看不到您所做的工作和您的编程问题,我们将无能为力。

关于备份,有一件事需要知道:如果您不知道如何恢复它们,它们就不是备份。mysql通常的最佳实践是进行mysql转储,在不知道您是如何进行备份的情况下,我们无法帮助您恢复它。您需要恢复多少个数据库。您是否在单独的文件中备份每个数据库?当然,我可以恢复备份我不知道如何恢复180个备份,下面是我的问题看看MySQL Workbench应用程序:如果您有180个备份文件,您可以循环它们?另外,你应该时不时地做一些完整备份。我刚从我的主机公司收到备份文件,我什么也不做。现在我必须构建一个web应用程序PHP来恢复数据库@John
while (($line = fgets($backup)) !== false)
    try {
        Illuminate\Support\Facades\DB::raw($line);
    } catch ( Exception $e ) { 
        // duplicate row
    }
}