function dump_database($next_ver) { global $db, $err, $prefix; include_once ROOT_PATH . 'admin/includes/cls_sql_dump.php'; require_once ROOT_PATH . 'upgrade/packages/' . $next_ver . '/dump_table.php'; /* 备份表为空时不作备份,返回真 */ if (empty($temp)) { return true; } @set_time_limit(300); $dump = new cls_sql_dump($db); $run_log = ROOT_PATH . 'data/sqldata/run.log'; $sql_file_name = $next_ver; $max_size = '2048'; $vol = 1; /* 变量验证 */ $allow_max_size = intval(@ini_get('upload_max_filesize')); //单位M if ($allow_max_size > 0 && $max_size > $allow_max_size * 1024) { $max_size = $allow_max_size * 1024; //单位K } if ($max_size > 0) { $dump->max_size = $max_size * 1024; } $tables = array(); foreach ($temp as $table) { $tables[$prefix . $table] = -1; } $dump->put_tables_list($run_log, $tables); /* 开始备份 */ $tables = $dump->dump_table($run_log, $vol); if ($tables === false) { $err->add($dump->errorMsg()); return false; } if (@file_put_contents(ROOT_PATH . 'data/sqldata/' . $sql_file_name . '.sql', $dump->dump_sql)) { return true; } else { return false; } }
} if (($mask & 2) < 1) { $warning .= $_LANG['cannot_write']; } if (($mask & 4) < 1) { $warning .= $_LANG['cannot_add']; } if (($mask & 8) < 1) { $warning .= $_LANG['cannot_modify']; } sys_msg($warning, 1); } /* 设置最长执行时间为5分钟 */ @set_time_limit(300); /* 初始化 */ $dump = new cls_sql_dump($db); $run_log = ROOT_PATH . DATA_DIR . '/sqldata/run.log'; /* 初始化输入变量 */ if (empty($_REQUEST['sql_file_name'])) { $sql_file_name = $dump->get_random_name(); } else { $sql_file_name = str_replace("0xa", '', trim($_REQUEST['sql_file_name'])); // 过滤 0xa 非法字符 $pos = strpos($sql_file_name, '.sql'); if ($pos !== false) { $sql_file_name = substr($sql_file_name, 0, $pos); } } $max_size = empty($_REQUEST['vol_size']) ? 0 : intval($_REQUEST['vol_size']); $vol = empty($_REQUEST['vol']) ? 1 : intval($_REQUEST['vol']); $is_short = empty($_REQUEST['ext_insert']) ? false : true;