php 스크립트로 간단히 mysql 백업하기
작성일 20-02-26 13:59
페이지 정보
작성자서방님 조회 284회 댓글 0건본문
phpmyadmin 들어가지않고
php로 간단하게 sql 백업 받는 소스입니다.
backup_tables('localhost','ID','PW','DB'); 의 코드를 본인의 계정에 맞게
수정하셔서 쓰시면 됩니다.
코드를 실행하면 20121111.sql 처럼 파일이 생성됩니다.
<?
function backup_tables($host, $user, $pass, $name, $tables = "*") {
$link = mysql_connect($host, $user, $pass);
mysql_select_db($name, $link);
// get all of the tables
if ($tables == "*") {
$tables = array();
$result = mysql_query("SHOW TABLES");
while ($row = mysql_fetch_row($result)) {
$tables[] = $row[0];
}
}
else {
$tables = is_array($tables) ? $tables : explode(",", $tables);
}
foreach ($tables as $table) {
$result = mysql_query("SELECT * FROM ".$table);
$num_fields = mysql_num_fields($result);
$return.= "DROP TABLE ".$table.";";
$row2 = mysql_fetch_row(mysql_query("SHOW CREATE TABLE ".$table));
$return.= "\n\n".$row2[1].";\n\n";
for ($i=0; $i<$num_fields; $i++) {
while ($row = mysql_fetch_row($result)) {
$return.= "INSERT INTO ".$table." VALUES(";
for ($j=0; $j<$num_fields; $j++) {
$row[$j] = addslashes($row[$j]);
$row[$j] = ereg_replace("\n", "\\n", $row[$j]);
if (isset($row[$j])) { $return .= '"'.$row[$j].'"' ; } else { $return .= '""'; }
if ($j < ($num_fields-1)) { $return .= ","; }
}
$return .= ");\n";
}
}
$return .= "\n\n\n";
}
$handle = fopen("db-backup-".time()."-".(md5(implode(",", $tables))).".sql", "w+");
fwrite($handle, $return);
fclose($handle);
}
backup_tables("localhost", "ID", "PW", "DB");
?>
댓글목록
등록된 댓글이 없습니다.
