Heim  >  Artikel  >  Backend-Entwicklung  >  So sichern Sie Datenbanktabellen automatisch in PHP

So sichern Sie Datenbanktabellen automatisch in PHP

墨辰丷
墨辰丷Original
2018-05-18 17:31:531925Durchsuche

Der folgende Editor stellt Ihnen eine Implementierungsmethode zum automatischen Sichern von Datenbanktabellen mit PHP vor. Der Herausgeber findet es ziemlich gut, deshalb teile ich es jetzt mit Ihnen und gebe es als Referenz. Folgen wir dem Herausgeber und werfen wir einen Blick darauf 🎜>Zum Beispiel:

1. Verwenden Sie die mysqldump-Funktion

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

dbname-Parameter stellt den Namen dar der Datenbank

Die Parameter table1 und table2 stellen die Namen der Tabellen dar, die gesichert werden müssen. Wenn sie leer sind, wird die gesamte Datenbank gesichert

BackupName.sql Parametertabelle Design Backup-Datei Dem Namen der Datei kann ein absoluter Pfad vorangestellt werden. Die Datenbank ist normalerweise in eine Datei mit dem Suffix sql unterteilt;
Grundlegende Verwendung:

2. Verwaltungstools

Es gibt viele Möglichkeiten, die Datenbank zu sichern, die beiden oben genannten sind häufiger anzutreffen

Dieses Mal erkläre ich hauptsächlich, wie das geht Automatische Sicherung über die PHP-Funktionsdatenbank

2. Einführung in verwandte Funktionen

2.2, array_keys

2.3, array_values

2.4, implodieren

2.5, substr

2.6, fwrite

3. Umsetzungsideen


4. Codezusammensetzung

/**
 * [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. Fazit


Der Hauptprozess der Sicherung der Datenbank :


Wechseln Sie zur entsprechenden Datenbank;

Verwenden Sie show create table tableName, um die Tabellenstruktur abzurufen und in die Datei zu schreiben. Fragen Sie dann alle Tabellendaten ab und führen Sie eine Schleife aus Generieren Sie die entsprechende SQL-Anweisung und schreiben Sie sie in die Datei. Die durch den Testlauf generierte SQL-Datei.

Die oben beschriebene Methode zur automatischen Sicherung der Datenbanktabelle Vom Herausgeber geteilter Inhalt. Ich hoffe, er kann Ihnen eine Referenz geben.

Verwandte Empfehlungen:

mysql So sichern Sie

Datenbank

und importieren


MySQL

Mehrere Methoden der Datenbanksicherung


Kleines MySQL ohne virtuellen Host

Datenbanksicherung

Skript

Das obige ist der detaillierte Inhalt vonSo sichern Sie Datenbanktabellen automatisch in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn