Esempio n. 1
0
function get_content($db, $table)
{
    global $config, $nl, $dump, $buffer;
    $content = '';
    $complete = Fieldlist($db, $table) . ' ';
    $table_ready = 0;
    $query = 'SELECT * FROM `' . $table . '` LIMIT ' . $dump['zeilen_offset'] . ',' . ($dump['restzeilen'] + 1);
    (bool) mysqli_query($GLOBALS["___mysqli_ston"], "USE " . $db);
    $result = mysqli_query($config['dbconnection'], $query);
    $ergebnisse = @mysqli_num_rows($result);
    if ($ergebnisse !== false) {
        $num_felder = ($___mysqli_tmp = mysqli_num_fields($result)) ? $___mysqli_tmp : false;
        $first = 1;
        if ($ergebnisse > $dump['restzeilen']) {
            $dump['zeilen_offset'] += $dump['restzeilen'];
            $ergebnisse--;
            $dump['restzeilen'] = 0;
        } else {
            $dump['table_offset']++;
            $dump['zeilen_offset'] = 0;
            $dump['restzeilen'] = $dump['restzeilen'] - $ergebnisse;
            $table_ready = 1;
        }
        $ax = 0;
        for ($x = 0; $x < $ergebnisse; $x++) {
            $row = mysqli_fetch_row($result);
            $ax++;
            $insert = 'INSERT INTO `' . $table . '` ' . $complete . 'VALUES (';
            for ($j = 0; $j < $num_felder; $j++) {
                if (!isset($row[$j])) {
                    $insert .= 'NULL,';
                } else {
                    if ($row[$j] != '') {
                        $insert .= '\'' . mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $row[$j]) . '\',';
                    } else {
                        $insert .= '\'\',';
                    }
                }
            }
            $insert = substr($insert, 0, -1) . ');' . $nl;
            $dump['data'] .= $insert;
            $dump['countdata']++;
            if (strlen($dump['data']) > $config['memory_limit'] || $config['multi_part'] == 1 && strlen($dump['data']) + $buffer > $config['multipart_groesse']) {
                WriteToDumpFile();
            }
        }
        if ($table_ready == 1 && $dump['table_types'][getDBIndex($db, $table)] != 'VIEW') {
            $dump['data'] .= "/*!40000 ALTER TABLE `{$table}` ENABLE KEYS */;\n";
        }
    } else {
        // table corrupt -> skip it
        $dump['table_offset']++;
        $dump['zeilen_offset'] = 0;
        $dump['restzeilen'] = $dump['restzeilen'] - $ergebnisse;
        $dump['data'] .= "/*!40000 ALTER TABLE `{$table}` ENABLE KEYS */;\n";
        if (strlen($dump['data']) > $config['memory_limit'] || $config['multi_part'] == 1 && strlen($dump['data']) + $buffer > $config['multipart_groesse']) {
            WriteToDumpFile();
        }
    }
    @(mysqli_free_result($result) || is_object($result) && get_class($result) == "mysqli_result" ? true : false);
}
Esempio n. 2
0
         if ($dump['anzahl_zeilen'] > $config['maxspeed']) {
             $dump['anzahl_zeilen'] = $config['maxspeed'];
         }
     } else {
         $dump['anzahl_zeilen'] = $dump['anzahl_zeilen'] * $config['tuning_sub'];
         if ($dump['anzahl_zeilen'] < $config['minspeed']) {
             $dump['anzahl_zeilen'] = $config['minspeed'];
         }
     }
     $dump['anzahl_zeilen'] = intval($dump['anzahl_zeilen']);
     $dump['aufruf']++;
 } else {
     //Backup fertig
     $dump['data'] = "\nSET FOREIGN_KEY_CHECKS=1;";
     $dump['data'] .= "\n" . $mysql_commentstring . ' EOB' . "\n\n";
     WriteToDumpFile();
     ExecuteCommand('a');
     chmod($config['paths']['backup'] . $dump['backupdatei'], 0777);
     if ($config['multi_part'] == 1) {
         $out .= "\n" . '<br><div class="backupmsg">';
         $dateistamm = substr($dump['backupdatei'], 0, strrpos($dump['backupdatei'], 'part_')) . 'part_';
         $dateiendung = $config['compression'] == 1 ? '.sql.gz' : '.sql';
         clearstatcache();
         for ($i = 1; $i < $dump['part'] - $dump['part_offset']; $i++) {
             $mpdatei = $dateistamm . $i . $dateiendung;
             $sz = byte_output(@filesize($config['paths']['backup'] . $mpdatei));
             $out .= "\n" . $lang['L_FILE'] . ' <a href="' . $config['paths']['backup'] . $mpdatei . '" class="smallblack">' . $mpdatei . ' (' . $sz . ')</a> ' . $lang['L_DUMP_SUCCESSFUL'] . '<br>';
         }
     } else {
         $out .= "\n" . '<div class="backupmsg">' . $lang['L_FILE'] . ' <a href="' . $config['paths']['backup'] . $dump['backupdatei'] . '" class="smallblack">' . $dump['backupdatei'] . ' (' . byte_output(filesize($config['paths']['backup'] . $dump['backupdatei'])) . ')' . '</a>' . $lang['L_DUMP_SUCCESSFUL'] . '<br>';
     }
function get_content($db, $table)
{
    global $config, $nl, $dump, $buffer;
    $content = '';
    $delayed = isset($config['backup_delayed_inserts']) && $config['backup_delayed_inserts'] == 1 ? 'DELAYED ' : '';
    $complete = isset($config['backup_complete_inserts']) && $config['backup_complete_inserts'] == 1 ? Fieldlist($db, $table) . ' ' : '';
    $ignore = isset($config['backup_ignore_inserts']) && $config['backup_ignore_inserts'] == 1 ? 'IGNORE  ' : '';
    $table_ready = 0;
    $query = 'SELECT * FROM `' . $table . '` LIMIT ' . $dump['zeilen_offset'] . ',' . ($dump['restzeilen'] + 1);
    mysql_select_db($db);
    $result = mysql_query($query, $config['dbconnection']);
    $ergebnisse = mysql_num_rows($result);
    $num_felder = mysql_num_fields($result);
    $first = 1;
    if ($ergebnisse > $dump['restzeilen']) {
        $dump['zeilen_offset'] += $dump['restzeilen'];
        $ergebnisse--;
        $dump['restzeilen'] = 0;
    } else {
        $dump['table_offset']++;
        $dump['zeilen_offset'] = 0;
        $dump['restzeilen'] = $dump['restzeilen'] - $ergebnisse;
        $table_ready = 1;
    }
    $ax = 0;
    for ($x = 0; $x < $ergebnisse; $x++) {
        $row = mysql_fetch_row($result);
        $ax++;
        if ($config['backup_extended_inserts'] == 0 || $config['backup_extended_inserts'] == 1 && $first == 1 && $ax == 1) {
            $insert = 'INSERT ' . $delayed . $ignore . 'INTO `' . $table . '` ' . $complete . 'VALUES (';
            $first = 0;
        } else {
            $insert = '(';
        }
        for ($j = 0; $j < $num_felder; $j++) {
            if (!isset($row[$j])) {
                $insert .= 'NULL,';
            } else {
                if ($row[$j] != '') {
                    $insert .= '\'' . mysql_escape_string($row[$j]) . '\',';
                } else {
                    $insert .= '\'\',';
                }
            }
        }
        $insert = substr($insert, 0, -1);
        if (strlen($dump['data']) > 400000 || $x == $ergebnisse - 1) {
            $ax = 0;
            $first = 1;
        }
        $insert .= $config['backup_extended_inserts'] == 0 || $x == $ergebnisse - 1 || $ax == 0 ? ");\n" : '),';
        $dump['data'] .= $insert;
        $dump['countdata']++;
        if (strlen($dump['data']) > $config['memory_limit'] || $config['multi_part'] == 1 && strlen($dump['data']) + $buffer > $config['multipart_groesse']) {
            WriteToDumpFile();
        }
    }
    if ($table_ready == 1 && $config['backup_lock_tables'] == 1 && $config['backup_delayed_inserts'] == 0) {
        $dump['data'] .= "\nUNLOCK TABLES;";
    }
    if ($table_ready == 1 && $config['backup_delayed_inserts'] == 0) {
        $dump['data'] .= "\n/*!40000 ALTER TABLE `{$table}` ENABLE KEYS */;\n\n";
    }
    mysql_free_result($result);
}
function GetTableData($table)
{
    global $dump;
    global $connection;
    // Dump the data
    if ($table != TABLE_SESSIONS && $table != TABLE_WHOS_ONLINE && $table != TABLE_ADMIN_ACTIVITY_LOG) {
        $table_list = array();
        $fields_query = mysqli_query($connection, "SHOW COLUMNS FROM " . $table);
        while ($fields = mysqli_fetch_array($fields_query)) {
            $table_list[] = $fields['Field'];
        }
        $rows_query = mysqli_query($connection, 'select `' . implode('`,`', $table_list) . '` from ' . $table . ' limit ' . $dump['zeilen_offset'] . ',' . $dump['anzahl_zeilen']);
        $ergebnisse = @mysqli_num_rows($rows_query);
        $data = '';
        if ($ergebnisse !== false) {
            if ($ergebnisse + $dump['zeilen_offset'] < $dump['table_records']) {
                //noch nicht fertig - neuen Startwert festlegen
                $dump['zeilen_offset'] += $dump['anzahl_zeilen'];
            } else {
                //Fertig - naechste Tabelle
                $dump['nr']++;
                $dump['table_offset'] = 0;
            }
            //BOF Complete Inserts ja/nein
            if ($_SESSION['dump']['complete_inserts'] == 'yes') {
                while ($rows = mysqli_fetch_array($rows_query)) {
                    $insert = 'INSERT INTO `' . $table . '` (`' . implode('`, `', $table_list) . '`) VALUES (';
                    foreach ($table_list as $column) {
                        //EOF NEW TABLE  STRUCTURE  - LIKE MYSQLDUMPER -functions_dump.php line 186
                        if (!isset($rows[$column])) {
                            $insert .= 'NULL,';
                        } else {
                            if ($rows[$column] != '') {
                                $insert .= '\'' . mysqli_real_escape_string($connection, $rows[$column]) . '\',';
                            } else {
                                $insert .= '\'\',';
                            }
                        }
                        //BOF NEW TABLE  STRUCTURE  - LIKE MYSQLDUMPER
                    }
                    $data .= substr($insert, 0, -1) . ');' . "\n";
                }
            } else {
                $lines = array();
                while ($rows = mysqli_fetch_array($rows_query)) {
                    $values = array();
                    foreach ($table_list as $column) {
                        //EOF NEW TABLE  STRUCTURE  - LIKE MYSQLDUMPER
                        if (!isset($rows[$column])) {
                            $values[] = 'NULL';
                        } else {
                            if ($rows[$column] != '') {
                                $values[] = '\'' . mysqli_real_escape_string($connection, $rows[$column]) . '\'';
                            } else {
                                $values[] = '\'\'';
                            }
                        }
                        //BOF NEW TABLE  STRUCTURE  - LIKE MYSQLDUMPER
                    }
                    $lines[] = implode(', ', $values);
                }
                $tmp = trim(implode("),\n (", $lines));
                if ($tmp != '') {
                    $data = 'INSERT INTO `' . $table . '` (`' . implode('`, `', $table_list) . '`) VALUES' . "\n" . ' (' . $tmp . ");\n";
                }
            }
            //EOF Complete Inserts ja/nein
            if ($dump['table_offset'] == 0) {
                $data .= "/*!40000 ALTER TABLE `{$table}` ENABLE KEYS */;\n\n";
            }
            //echo nl2br($data);
            WriteToDumpFile($data);
        }
        // FEHLER
    } else {
        $dump['nr']++;
        $dump['table_offset'] = 0;
    }
}