// Fake loop just to allow skip of remain of this code by break, I'd really
// need exceptions here :-)
do {
// Add possibly some comments to export
if (!PMA_exportHeader()) break;
// Will we need relation & co. setup?
$do_relation = isset($GLOBALS[$what . '_relation']);
$do_comments = isset($GLOBALS[$what . '_comments']);
$do_mime = isset($GLOBALS[$what . '_mime']);
if ($do_relation || $do_comments || $do_mime) {
require_once('./libraries/relation.lib.php');
$cfgRelation = PMA_getRelationsParam();
}
if ($do_mime) {
require_once('./libraries/transformations.lib.php');
}
// Include dates in export?
$do_dates = isset($GLOBALS[$what . '_dates']);
/**
* Builds the dump
*/
// Gets the number of tables if a dump of a database has been required
if ($export_type == 'server') {
/**
* Gets the databases list - if it has not been built yet
*/
if ($server > 0 && empty($dblist)) {
PMA_availableDatabases();
}
if (isset($db_select)) {
$tmp_select = implode($db_select, '|');
$tmp_select = '|' . $tmp_select . '|';
}
// Walk over databases
foreach ($dblist AS $current_db) {
if ((isset($tmp_select) && strpos(' ' . $tmp_select, '|' . $current_db . '|'))
|| !isset($tmp_select)) {
if (!PMA_exportDBHeader($current_db))
break 2;
if (!PMA_exportDBCreate($current_db))
break 2;
$tables = PMA_DBI_get_tables($current_db);
foreach ($tables as $table) {
$local_query = 'SELECT * FROM ' . PMA_backquote($current_db) . '.' . PMA_backquote($table);
if (isset($GLOBALS[$what . '_structure'])) {
if (!PMA_exportStructure($current_db, $table, $crlf, $err_url, $do_relation, $do_comments, $do_mime, $do_dates))
break 3;
}
if (isset($GLOBALS[$what . '_data'])) {
if (!PMA_exportData($current_db, $table, $crlf, $err_url, $local_query))
break 3;
}
}
if (!PMA_exportDBFooter($current_db))
break 2;
}
}
} elseif ($export_type == 'database') {
if (!PMA_exportDBHeader($db))
break;
if (isset($table_select)) {
$tmp_select = implode($table_select, '|');
$tmp_select = '|' . $tmp_select . '|';
}
$i = 0;
foreach ($tables as $table) {
$local_query = 'SELECT * FROM ' . PMA_backquote($db) . '.' . PMA_backquote($table);
if ((isset($tmp_select) && strpos(' ' . $tmp_select, '|' . $table . '|'))
|| !isset($tmp_select)) {
if (isset($GLOBALS[$what . '_structure'])) {
if (!PMA_exportStructure($db, $table, $crlf, $err_url, $do_relation, $do_comments, $do_mime, $do_dates))
break 2;
}
if (isset($GLOBALS[$what . '_data'])) {
if (!PMA_exportData($db, $table, $crlf, $err_url, $local_query))
break 2;
}
}
}
if (!PMA_exportDBFooter($db))
break;
} else {
if (!PMA_exportDBHeader($db))
break;
// We export just one table
if ($limit_to > 0 && $limit_from >= 0) {
$add_query = ' LIMIT '
. (($limit_from > 0) ? $limit_from . ', ' : '')
. $limit_to;
} else {
$add_query = '';
}
if (!empty($sql_query)) {
$local_query = $sql_query . $add_query;
PMA_DBI_select_db($db);
} else {
$local_query = 'SELECT * FROM ' . PMA_backquote($db) . '.' . PMA_backquote($table) . $add_query;
}
if (isset($GLOBALS[$what . '_structure'])) {
if (!PMA_exportStructure($db, $table, $crlf, $err_url, $do_relation, $do_comments, $do_mime, $do_dates))
break;
}
if (isset($GLOBALS[$what . '_data'])) {
if (!PMA_exportData($db, $table, $crlf, $err_url, $local_query))
break;
}
if (!PMA_exportDBFooter($db))
break;
}
if (!PMA_exportFooter()) break;
} while (FALSE);
// End of fake loop