php 스크립트로 간단히 mysql 백업하기
작성일 20-02-26 13:59
페이지 정보
작성자서방님 조회 50회 댓글 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"); ?>
댓글목록
등록된 댓글이 없습니다.