php 를 사용 하여 데이터베이스 테이블 을 자동 으로 백업 하 는 실현 방법
4620 단어 php저절로백업데이터베이스 테이블
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 자동 백업 데이터 베 이 스 를 사용 하 는 실현 방법 은 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 께 참고 가 되 고 저희 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.