| 
...
 | 
...
 | 
@@ -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 | 
...
 | 
...
 | 
 |