正在显示
1 个修改的文件
包含
13 行增加
和
6 行删除
@@ -37,21 +37,28 @@ foreach ($tables as $table){ | @@ -37,21 +37,28 @@ foreach ($tables as $table){ | ||
37 | 37 | ||
38 | $p = 0; | 38 | $p = 0; |
39 | $limit = 1000; | 39 | $limit = 1000; |
40 | + $totalBackupCount = 0; | ||
40 | while (1){ | 41 | while (1){ |
41 | echo "正在备份数据 当前 $p 页\r"; | 42 | echo "正在备份数据 当前 $p 页\r"; |
42 | $lists = db()->all("select * from `{$table}` limit {$limit} offset ".($p*$limit)); | 43 | $lists = db()->all("select * from `{$table}` limit {$limit} offset ".($p*$limit)); |
43 | if($lists){ | 44 | if($lists){ |
44 | - foreach ($lists as $list) | ||
45 | - file_put_contents($datafile,json_encode($list,true),FILE_APPEND); | 45 | + $backupCount = 0; |
46 | + foreach ($lists as $list) { | ||
47 | + // 每行一个独立的JSON对象,添加换行符以便恢复时正确解析 | ||
48 | + file_put_contents($datafile, json_encode($list, JSON_UNESCAPED_UNICODE) . "\n", FILE_APPEND | LOCK_EX); | ||
49 | + $backupCount++; | ||
50 | + $totalBackupCount++; | ||
51 | + } | ||
52 | + // 如果当前页数据少于限制数量,说明已经是最后一页 | ||
53 | + if ($backupCount < $limit) { | ||
54 | + break; | ||
55 | + } | ||
46 | }else{ | 56 | }else{ |
47 | break; | 57 | break; |
48 | } | 58 | } |
49 | $p++; | 59 | $p++; |
50 | - | ||
51 | } | 60 | } |
52 | 61 | ||
53 | - echo "\n"; | 62 | + echo "表 {$table} 备份完成,共 {$totalBackupCount} 条记录\n"; |
54 | 63 | ||
55 | } | 64 | } |
56 | - | ||
57 | - |
-
请 注册 或 登录 后发表评论