作者 邓超

备份数据

... ... @@ -37,21 +37,28 @@ foreach ($tables as $table){
$p = 0;
$limit = 1000;
$totalBackupCount = 0;
while (1){
echo "正在备份数据 当前 $p\r";
$lists = db()->all("select * from `{$table}` limit {$limit} offset ".($p*$limit));
if($lists){
foreach ($lists as $list)
file_put_contents($datafile,json_encode($list,true),FILE_APPEND);
$backupCount = 0;
foreach ($lists as $list) {
// 每行一个独立的JSON对象,添加换行符以便恢复时正确解析
file_put_contents($datafile, json_encode($list, JSON_UNESCAPED_UNICODE) . "\n", FILE_APPEND | LOCK_EX);
$backupCount++;
$totalBackupCount++;
}
// 如果当前页数据少于限制数量,说明已经是最后一页
if ($backupCount < $limit) {
break;
}
}else{
break;
}
$p++;
}
echo "\n";
echo "{$table} 备份完成,共 {$totalBackupCount} 条记录\n";
}
\ No newline at end of file
... ...