> 백엔드 개발 > PHP 튜토리얼 > PHP에서 데이터베이스 테이블을 자동으로 백업하는 방법

PHP에서 데이터베이스 테이블을 자동으로 백업하는 방법

墨辰丷
풀어 주다: 2023-03-26 17:56:01
원래의
1955명이 탐색했습니다.

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

1. 소개

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

예:

1 mysqldump 함수를 사용하세요

mysqldump -u username -p dbname table1 table2 ... > BackupName.sql
로그인 후 복사

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

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

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

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

이번에는 PHP 함수2를 통해 데이터베이스를 자동으로 백업하는 방법을 주로 설명합니다.

2.3, arra y_values

2.4, implode

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. 데이터베이스 백업의 주요 프로세스:

Switch

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

위 글은 PHP를 사용하여 데이터베이스를 자동으로 백업합니다. 테이블의 구현 방법은 모두 편집기에서 공유한 내용이므로 참조해 주시면 좋겠습니다.

관련 권장 사항: mysql

데이터베이스 백업

방법 및 가져오기


mysql

데이터베이스 백업 여러 가지 방법

가상 호스트가 없는 작은 MySQL

데이터베이스 백업

스크립트

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿