<?
$sub_menu = "";
include_once("./_common.php");

if(!$chk) { alert("선택 된 테이블이 없습니다."); exit; }

//-- DB 백업
$fileName	= "_DB_" . $_SERVER[SERVER_NAME] . date("Ymd");		//-- 백업받을 파일명
$extention	= "sql";											//-- 백업 받을 파일 확장자

$all		= true;				//-- 완전한 Insert 문을 작성하려면 true
$drop		= true;				//-- drop 구문을 포함하려면 true. 동명의 기존 테이블은 삭제






function get_insert($table) {
	global $all;
	
	$result		= mysql_query("show fields from $table");
	$i			= 0;
	while($keys = mysql_fetch_array($result)) {
		if(!$i) $defaultOrder = $keys[Field];
		if($keys[Key] == 'PRI') {
			$orderby = $keys[Field];
			break;
		}
		$i++;
	}
	
	if(!$orderby) $orderby	= $defaultOrder;
	$result		= mysql_query("select * from $table order by $orderby");
	$nums		= mysql_num_fields($result);
 
	if($all == true) {
		for($i=0;$i<$nums;$i++) {
			$fields[]	= mysql_field_name($result,$i);
		}
		$fields		= "(".implode(",",$fields).") ";
	}
 
	while($rows = mysql_fetch_row($result)) {
		for($i=0;$i<$nums;$i++) {
			$insertValues[$i] = $rows[$i];
		}
		$return		.= "INSERT INTO $table ".$fields."values ('".implode("','",$insertValues)."');\n";
	}
	return $return;
}







//-- 선택 된 테이블 백업 --------------------------------------------------------------------------
$backup_date	= date("Y-m-d H:i:s", $g4[server_time]);
$backup_data	= "#\n# 처리일 : " . $backup_date . "\n# 데이터베이스 : " . $mysql_db . "\n#\n\n\n";
for($i = 0; $i < count($chk); $i++) {
	if($chk[$i]) {
		$skima			= mysql_fetch_array(mysql_query("SHOW CREATE TABLE " . $mysql_db . "." . $chk[$i]));		//-- 테이블 생성
		
		$backup_data	.= "\n#-----------------------------------------------------------------------\n# Process $skima[0]\n#\n";
		if($drop == true) $backup_data	.= "DROP TABLE IF EXISTS " . $skima[0] . ";\n\n";							//-- 테이블 제거
		$backup_data	.= "CREATE TABLE if not exists " . $skima[0] . " ";
		$pos			= strpos($skima[1], " (");
		$backup_data	.= str_replace("`", "", substr($skima[1], ($pos + 1))) . ";";

		$backup_data	.= "\n#\n# insert '$chk[$i]'\n#";
		$str_insert		= get_insert($skima[0]);

		if($str_insert) $backup_data	.= "\n" . $str_insert;
		$backup_data	.= "\n\n\n\n\n";
	}
}

//-- 백업 날짜 기록
sql_query("update $zmb[table_config] set db_value='$backup_date' where db_variable='db_backupdate'");

Header("Content-type:application/octet-stream"); 
Header("Content-Disposition:attachment;filename=".$fileName.".".$extention); 
Header("Content-type:file/unknown"); 
Header("Content-Description:PHP Generated Data"); 
Header("Pragma: no-cache"); 
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
Header("Expires: 0"); 

echo $backup_data;
?>