Exemple #1
0
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;
    }
}
Exemple #2
0
     }
     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;