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); }
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; } }