>  기사  >  백엔드 개발  >  PHP를 사용하여 데이터베이스 테이블을 자동으로 백업하는 방법에 대한 그래픽 코드 소개

PHP를 사용하여 데이터베이스 테이블을 자동으로 백업하는 방법에 대한 그래픽 코드 소개

黄舟
黄舟원래의
2017-07-30 09:36:371246검색

다음 편집기는 PHP를 사용하여 데이터베이스 테이블을 자동으로 백업하는 방법에 대한 기사를 제공합니다. 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리도록 하겠습니다. 에디터를 따라가며 함께 살펴볼까요

1. 소개

mysql 데이터베이스를 백업하는 방법은 다양합니다.

예:

1 mysqldump 함수를 사용하세요

mysqldump -u username -p dbname table1 table2 ... > BackupName.sql

dbname 매개변수는 데이터베이스 이름을 나타냅니다

table1 및 table2 매개변수는 백업해야 하는 테이블의 이름을 나타냅니다. 비어 있으면 전체 데이터베이스가 백업됩니다. BackupName.sql 매개변수 테이블은 백업 파일의 이름으로 설계되었습니다. 절대 경로는 파일 이름 앞에 추가할 수 있습니다. 데이터베이스는 일반적으로

접미사가 붙은 파일로 구분됩니다. 기본 사용:

2. 데이터베이스를 백업하는 방법에는 여러 가지가 있습니다. 위의 두 가지가 있습니다. 더 일반적입니다

이번에는 PHP 기능을 통해 데이터베이스를 자동으로 백업하는 방법을 주로 설명합니다2. 관련 기능 소개

2.1, fopen

2.2 , array_keys


2.3, array_values


2.4, 2.5, substr

2.6, fwrite


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\n");//加入默认删除表的遇见
		//下面备份表结构,这个循环之执行一次
		while($re = $tableSql->fetch(PDO::FETCH_ASSOC)){
			// echo "<pre class="brush:php;toolbar:false">";
			// var_dump($re);
			// echo "
"; echo "正在备份表{$re['Table']}结构
"; fwrite($myfile, $re['Create Table'].";\r\n\r\n"); echo "正在备份表{$re['Table']}结构完成
"; } //下面备份表数据 echo "正在备份表{$tableName}数据
"; $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\n\r\n"); } echo "正在备份表{$tableName}数据完成
"; echo "

"; } fclose($myfile); } 5. 결론

주요과정 데이터베이스 백업:

해당 데이터베이스로 전환합니다. show create table tableName을 사용하여 테이블 구조를 가져와서 파일에 씁니다. 그런 다음 모든 테이블 데이터를 쿼리하고 해당 SQL 문을 생성합니다.

생성된 SQL 파일을 실행해 보세요.

위 내용은 PHP를 사용하여 데이터베이스 테이블을 자동으로 백업하는 방법에 대한 그래픽 코드 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.