php 를 사용 하여 데이터베이스 테이블 을 자동 으로 백업 하 는 실현 방법

1.머리말
my sql 데이터베이스 백업 방식 이 많 습 니 다.
예 를 들 면:
1,mysqldump 함수 사용
mysqldump -u username -p dbname table1 table2 ... > BackupName.sql
dbname 매개 변 수 는 데이터베이스 이름 을 표시 합 니 다.
table 1 과 table 2 인 자 는 백업 이 필요 한 표 의 이름 을 표시 하고 비어 있 으 면 전체 데이터 베 이 스 를 백업 합 니 다.
BackupName.sql 매개 변수 표 는 백업 파일 의 이름 을 디자인 하고 파일 이름 앞 에 절대 경 로 를 추가 할 수 있 습 니 다.보통 데이터 베 이 스 를 sql 이라는 접미사 로 나 누 는 파일 입 니 다.
기본 사용:

2.관리 도구

데이터 베 이 스 를 백업 하 는 방법 은 매우 많은 데,위의 두 가지 가 비교적 흔 하 다.
이번 에는 phop 함 수 를 통 해 데이터 베 이 스 를 자동 으로 백업 하 는 방법 을 설명 한다.
2.관련 함수 소개
2.1 、fopen
자세 한 내용 은 참고:http://www.w3school.com.cn/php/func_filesystem_fopen.asp

2.2、array_keys
자세 한 내용 은 참고:http://www.w3school.com.cn/php/func_array_keys.asp

2.3、array_values

2.4、implode
자세 한 내용 은 참고:http://www.w3school.com.cn/php/func_string_implode.asp

2.5、substr
자세 한 내용 은 참고:http://www.w3school.com.cn/php/func_string_substr.asp

2.6、fwrite
자세 한 내용 은 참고:https://www.w3cschool.cn/php/func-filesystem-fwrite.html

3.사고의 실현

4.코드 구성

/**
 * [copyDb description]      
 * @param [type] $dbname [description]     
 * @param [type] $fileName [description]       
 * @return [type]   [description]
 */
public function copyDb($dbname, $fileName){
	$myfile = fopen($fileName, "w") or die("Unable to open file!");//      
	$this->link->query("use {$dbname}");//     
	$this->changeDb($dbname);
	$tables = $this->link->query('show tables');//            
	while($re = $tables->fetch(PDO::FETCH_ASSOC)){
		//var_dump($re);//      
		$tableName = $re['Tables_in_'.$dbname];//       
		$sql = "show create table {$tableName};";
		$tableSql = $this->link->query($sql);

		fwrite($myfile, "DROP TABLE IF EXISTS `{$tableName}`;\r
");// // , while($re = $tableSql->fetch(PDO::FETCH_ASSOC)){ // echo "<pre>"; // var_dump($re); // echo "</pre>"; echo " {$re['Table']} <br/>"; fwrite($myfile, $re['Create Table'].";\r
\r
"); echo " {$re['Table']} <br/>"; } // echo " {$tableName} <br/>"; $sql = "select * from {$tableName};"; $valueSql = $this->link->query($sql); while($re = $valueSql->fetch(PDO::FETCH_ASSOC)){ $keyArr = array_keys($re);// $valueArr = array_values($re);// $keyStr = ''; foreach ($keyArr as $key => $value) { $keyStr .= "`".$value."`,"; } $keyStr = substr($keyStr,0,strlen($keyStr)-1); // $valueStr = ''; // var_dump($valueArr); foreach ($valueArr as $key => $value) { $valueStr .= "'".$value."',"; } // sql $valueStr = substr($valueStr,0,strlen($valueStr)-1); // $sql = "insert into `{$tableName}`({$keyStr}) values({$valueStr})"; fwrite($myfile, $sql.";\r
\r
"); } echo " {$tableName} <br/>"; echo "<br/><hr/>"; } fclose($myfile); }
5.결어
백업 데이터베이스 의 주요 과정:
대응 하 는 데이터베이스 로 전환 하기;
show create table Name 을 사용 하여 표 구 조 를 가 져 와 파일 에 쓰기;
그 다음 에 모든 표 데 이 터 를 조회 하고 sql 문 구 를 순환 적 으로 생 성하 여 파일 에 기록 합 니 다.
생 성 된 sql 파일 실행 하기;
이상 의 phop 자동 백업 데이터 베 이 스 를 사용 하 는 실현 방법 은 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 께 참고 가 되 고 저희 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기