Maison php教程 php手册 php mysql 数据库备份程序

php mysql 数据库备份程序

May 26, 2016 pm 03:22 PM
mysql php 数据库备份

提供一款实例的php mysql 数据库备份程序,很好方法的可以对你的数据库进行在线实时备份,这样可以保存数据库的安全,并且他是以.sql文件保存在bakdata目录还日期生成的数据库备份文件的,代码如下:

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> 
	<html xmlns="http://www.w3.org/1999/xhtml"> 
	<head> 
	<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
	<link type="text/css" rel="stylesheet" href="common/control.css"> 
	<script type="text/javascript" language="javascript" src="common/admin.otable.js"></script> 
	<script type="text/javascript" language="javascript" src="common/include.func.js"></script> 
	<title>数据管理</title> 
	<style type="text/css"> 
	span {padding-left:8px;} 
	</style> 
	</head> 
	<body class="contentbody"> 
	<div class="maindiv"> 
	<span class="ctitle">esweb系统数据管理</span> 
	<ul class="cmenu"> 
	 <li><a href="sql_backup.php">数据备份</a></li> 
	    <li><a href="sql_restore.php">数据还原</a></li> 
	 <li><a href="sql_optimize.php">数据优化</a> 
	</ul> 
	<div class="concontent"> 
	<?php 
	/*--------------界面--------------*/if(!$_post[&#39;act&#39;]){/*----------------------*/ 
	$msgs[]="服务器备份目录为$backup"; 
	$msgs[]="对于较大的数据表,强烈建议使用分卷备份"; 
	$msgs[]="只有选择备份到服务器,才能使用分卷备份功能"; 
	//show_msg($msgs); 
	 
	<div class="thead"><span class="left"><img  src="/static/imghw/default1.png"  data-src="images/icon2/into.gif"  class="lazy"   align="absmiddle" / alt="php mysql 数据库备份程序 " > 如果需要备份、还原或者优化<font color="red"> 大量的数据 </font>, 推荐使用"<a href="http://www.phome.net/ebak2010/" target="_blank">帝国备份王2010</a>"</span> <span class="right"></span></div> 
	<form name="myform" method="post" action="sql_backup.php"> 
	<table cellpadding="" cellspacing="0" border="0" width="100%" class="ctable" id="otable" align="center"> 
	<tr> 
	 <th colspan="2">esweb系统数据备份</th> 
	</tr> 
	<tr> 
	 <td align="right" width="250">选择备份方式</td> 
	    <td><input type="radio" name="bfzl" value="quanbubiao" checked="checked" />备份全部数据  
	    <input type="radio" name="bfzl" value="danbiao" />备份单张表数据   
	    <select name="tablename"><option value="">请选择</option> 
	    <?php 
	    $d->query("show table status from $mysqldb"); 
	    while($d->nextrecord()){ 
	    echo "<option value=&#39;".$d->f(&#39;name&#39;)."&#39;>".$d->f(&#39;name&#39;)."</option>";} 
	     
	    </select></td> 
	</tr> 
	<tr> 
	 <td align="right">选择目标位置</td> 
	    <td><input type="radio" name="weizhi" value="server" checked="checked" />备份到服务器  
	    <input type="radio" name="weizhi" value="localpc" />备份到本地</td> 
	</tr> 
	<tr> 
	 <td align="right">使用分卷备份</td> 
	    <td><input type="checkbox" name="fenjuan" value="yes" checked="checked" /> 
	    分卷备份 <input name="filesize" type="text" value="1260" size="10" class="text2" /> k <span>(只有选择备份到服务器,才能使用分卷备份功能)</span></td> 
	</tr> 
	<tr> 
	 <td align="right">程序说明</td> 
	    <td>1.对于较大的数据表,强烈建议使用分卷备份. 
	    <br>2.只有选择备份到服务器,才能使用分卷备份功能. 
	    </td> 
	</tr> 
	<tr> 
	 <td align="center" colspan="2"><input type="submit" id="act" name="act" value="备 份" class="button" /> <input type="reset" value="重 置" class="button" /></td> 
	</tr> 
	</table> 
	</form> 
	<?php /*-------------界面结束-------------*/}/*---------------------------------*/ 
	/*----*/else{/*--------------主程序-----------------------------------------*/ 
	if($_post[&#39;weizhi&#39;]=="localpc"&&$_post[&#39;fenjuan&#39;]==&#39;yes&#39;) 
	{$msgs[]="只有选择备份到服务器,才能使用分卷备份功能"; 
	show_msg($msgs); pageend();} 
	if($_post[&#39;fenjuan&#39;]=="yes"&&!$_post[&#39;filesize&#39;]) 
	{$msgs[]="您选择了分卷备份功能,但未填写分卷文件大小"; 
	show_msg($msgs); pageend();} 
	if($_post[&#39;weizhi&#39;]=="server"&&!writeable($backup)) 
	{$msgs[]="备份文件存放目录&#39;$backup&#39;不可写,请修改目录属性"; 
	show_msg($msgs); pageend();} 
	/*----------备份全部表-------------*/if($_post[&#39;bfzl&#39;]=="quanbubiao"){/*----*/ 
	/*----不分卷*/if(!$_post[&#39;fenjuan&#39;]){/*--------------------------------*/ 
	if(!$tables=$d->query("show table status from $mysqldb")) 
	{$msgs[]="读数据库结构错误"; show_msg($msgs); pageend();} 
	$sql=""; 
	while($d->nextrecord($tables)) 
	{ 
	$table=$d->f("name"); 
	$sql.=make_header($table); 
	$d->query("select * from $table"); 
	$num_fields=$d->nf(); 
	while($d->nextrecord()) 
	{$sql.=make_record($table,$num_fields);} 
	} 
	$filename=date("ymd",time())."_all.sql"; 
	if($_post[&#39;weizhi&#39;]=="localpc") down_file($sql,$filename); 
	elseif($_post[&#39;weizhi&#39;]=="server") 
	{if(write_file($sql,$filename)) 
	$msgs[]="全部数据表数据备份完成,生成备份文件&#39;$backup/$filename&#39;"; 
	else $msgs[]="备份全部数据表失败"; 
	show_msg($msgs); 
	pageend(); 
	} 
	/*-----------------不要卷结束*/}/*-----------------------*/ 
	/*-----------------分卷*/else{/*-------------------------*/ 
	if(!$_post[&#39;filesize&#39;]) 
	{$msgs[]="请填写备份文件分卷大小"; show_msg($msgs);pageend();} 
	if(!$tables=$d->query("show table status from $mysqldb")) 
	{$msgs[]="读数据库结构错误"; show_msg($msgs); pageend();} 
	$sql=""; $p=1; 
	$filename=date("ymd",time())."_all"; 
	while($d->nextrecord($tables)) 
	{ 
	$table=$d->f("name"); 
	$sql.=make_header($table); 
	$d->query("select * from $table"); 
	$num_fields=$d->nf(); 
	while($d->nextrecord()) 
	{$sql.=make_record($table,$num_fields); 
	if(strlen($sql)>=$_post[&#39;filesize&#39;]*1000){ 
	     $filename.=("_v".$p.".sql"); 
	     if(write_file($sql,$filename)) 
	     $msgs[]="全部数据表-卷-".$p."-数据备份完成,生成备份文件&#39;$backup/$filename&#39;"; 
	     else $msgs[]="备份表-".$_post[&#39;tablename&#39;]."-失败"; 
	     $p++; 
	     $filename=date("ymd",time())."_all"; 
	     $sql="";} 
	} 
	} 
	if($sql!=""){$filename.=("_v".$p.".sql");   
	if(write_file($sql,$filename)) 
	$msgs[]="全部数据表-卷-".$p."-数据备份完成,生成备份文件&#39;$backup/$filename&#39;";} 
	show_msg($msgs); 
	/*---------------------分卷结束*/}/*--------------------------------------*/ 
	/*--------备份全部表结束*/}/*---------------------------------------------*/ 
	/*--------备份单表------*/elseif($_post[&#39;bfzl&#39;]=="danbiao"){/*------------*/ 
	if(!$_post[&#39;tablename&#39;]) 
	{$msgs[]="请选择要备份的数据表"; show_msg($msgs); pageend();} 
	/*--------不分卷*/if(!$_post[&#39;fenjuan&#39;]){/*-------------------------------*/ 
	$sql=make_header($_post[&#39;tablename&#39;]); 
	$d->query("select * from ".$_post[&#39;tablename&#39;]); 
	$num_fields=$d->nf(); 
	while($d->nextrecord()) 
	{$sql.=make_record($_post[&#39;tablename&#39;],$num_fields);} 
	$filename=date("ymd",time())."_".$_post[&#39;tablename&#39;].".sql"; 
	if($_post[&#39;weizhi&#39;]=="localpc") down_file($sql,$filename); 
	elseif($_post[&#39;weizhi&#39;]=="server") 
	{if(write_file($sql,$filename)) 
	$msgs[]="表-".$_post[&#39;tablename&#39;]."-数据备份完成,生成备份文件&#39;$backup/$filename&#39;"; 
	else $msgs[]="备份表-".$_post[&#39;tablename&#39;]."-失败"; 
	show_msg($msgs); 
	pageend(); 
	} 
	/*----------------不要卷结束*/}/*------------------------------------*/ 
	/*----------------分卷*/else{/*--------------------------------------*/ 
	if(!$_post[&#39;filesize&#39;]) 
	{$msgs[]="请填写备份文件分卷大小"; show_msg($msgs);pageend();} 
	$sql=make_header($_post[&#39;tablename&#39;]); $p=1;  
	$filename=date("ymd",time())."_".$_post[&#39;tablename&#39;]; 
	$d->query("select * from ".$_post[&#39;tablename&#39;]); 
	$num_fields=$d->nf(); 
	while ($d->nextrecord())  
	{  
	    $sql.=make_record($_post[&#39;tablename&#39;],$num_fields); 
	      if(strlen($sql)>=$_post[&#39;filesize&#39;]*1000){ 
	     $filename.=("_v".$p.".sql"); 
	     if(write_file($sql,$filename)) 
	     $msgs[]="表-".$_post[&#39;tablename&#39;]."-卷-".$p."-数据备份完成,生成备份文件&#39;$backup/$filename&#39;"; 
	     else $msgs[]="备份表-".$_post[&#39;tablename&#39;]."-失败"; 
	     $p++; 
	     $filename=date("ymd",time())."_".$_post[&#39;tablename&#39;]; 
	     $sql="";} 
	} 
	if($sql!=""){$filename.=("_v".$p.".sql");   
	if(write_file($sql,$filename)) 
	$msgs[]="表-".$_post[&#39;tablename&#39;]."-卷-".$p."-数据备份完成,生成备份文件&#39;$backup/$filename&#39;";} 
	show_msg($msgs); 
	/*----------分卷结束*/}/*--------------------------------------------------*/ 
	/*----------备份单表结束*/}/*----------------------------------------------*/ 
	/*---*/}/*-------------主程序结束------------------------------------------*/ 
	function write_file($sql,$filename) 
	{ 
	$re=true; 
	global $backup; 
	if(!@$fp=fopen($backup."/".$filename,"w+")) {$re=false; echo "failed to open target file";} 
	if(!@fwrite($fp,$sql)) {$re=false; echo "failed to write file";} 
	if(!@fclose($fp)) {$re=false; echo "failed to close target file";} 
	return $re; 
	} 
	function down_file($sql,$filename) 
	{ 
	ob_end_clean(); 
	header("content-encoding: none"); 
	header("content-type: ".(strpos($_server[&#39;http_user_agent&#39;], &#39;msie&#39;) ? &#39;application/octetstream&#39; : &#39;application/octet-stream&#39;)); 
	    
	header("content-disposition: ".(strpos($_server[&#39;http_user_agent&#39;], &#39;msie&#39;) ? &#39;inline; &#39; : &#39;attachment; &#39;)."filename=".$filename); 
	    
	header("content-length: ".strlen($sql)); 
	header("pragma: no-cache"); 
	    
	header("expires: 0"); 
	echo $sql; 
	$e=ob_get_contents(); 
	ob_end_clean(); 
	} 
	function writeable($dir) 
	{ 
	if(!is_dir($dir)) { 
	@mkdir($dir, 0777); 
	} 
	if(is_dir($dir))  
	{ 
	if($fp = @fopen("$dir/test.test", &#39;w&#39;)) 
	    { 
	@fclose($fp); 
	@unlink("$dir/test.test"); 
	$writeable = 1; 
	}  
	else { 
	$writeable = 0; 
	} 
	} 
	return $writeable; 
	} 
	function make_header($table) 
	{global $d; 
	$sql="drop table if exists ".$table." "; 
	$d->query("show create table ".$table); 
	$d->nextrecord(); 
	$tmp=preg_replace("/ /","",$d->f("create table")); 
	$sql.=$tmp." "; 
	return $sql; 
	} 
	function make_record($table,$num_fields) 
	{global $d; 
	$comma=""; 
	$sql .= "insert into ".$table." values("; 
	for($i = 0; $i < $num_fields; $i++)  
	{$sql .= ($comma."&#39;".mysql_escape_string($d->record[$i])."&#39;"); $comma = ",";} 
	$sql .= ") "; 
	return $sql; 
	} 
	function show_msg($msgs) 
	{ 
	$title="提示:"; 
	echo "<table width=&#39;100%&#39; border=&#39;0&#39; cellpadding=&#39;0&#39; cellspacing=&#39;0&#39;>"; 
	echo "<tr><td>".$title."</td></tr>"; 
	echo "<tr><td><br><ul>"; 
	while (list($k,$v)=each($msgs)) 
	{ 
	echo "<li>".$v."</li>"; 
	} 
	echo "</ul></td></tr></table>"; 
	} 
	function pageend() 
	{ 
	exit(); 
	} 
	 
	</div><br /><br /> 
	</div> 
	</div> 
	</body> 
	</html> 
	class db{ 
	var $linkid; 
	var $sqlid; 
	var $record; 
	function db($host="",$username="",$password="",$database="") 
	{ 
	if(!$this->linkid)    @$this->linkid = mysql_connect($host, $username, $password) or die("连接服务器失败."); 
	@mysql_select_db($database,$this->linkid) or die("无法打开数据库"); 
	return $this->linkid;} 
	function query($sql) 
	{if($this->sqlid=mysql_query($sql,$this->linkid)) return $this->sqlid; 
	else { 
	    $this->err_report($sql,mysql_error); 
	return false;} 
	} 
	function nr($sql_id="") 
	{if(!$sql_id) $sql_id=$this->sqlid; 
	return mysql_num_rows($sql_id);} 
	function nf($sql_id="") 
	{if(!$sql_id) $sql_id=$this->sqlid; 
	return mysql_num_fields($sql_id);} 
	function nextrecord($sql_id="") 
	{if(!$sql_id) $sql_id=$this->sqlid; 
	if($this->record=mysql_fetch_array($sql_id))    return $this->record; 
	else return false; 
	} 
	function f($name) 
	{ 
	if($this->record[$name]) return $this->record[$name]; 
	else return false; 
	} 
	function close() {mysql_close($this->linkid);} 
	function lock($tblname,$op="write") 
	{if(mysql_query("lock tables ".$tblname." ".$op)) return true; else return false;} 
	function unlock() 
	{if(mysql_query("unlock tables")) return true; else return false;} 
	function ar() { 
	      return @mysql_affected_rows($this->linkid); 
	    } 
	function i_id() { 
	    return mysql_insert_id(); 
	} 
	function err_report($sql,$err) 
	{ 
	echo "mysql查询错误<br>"; 
	echo "查询语句:".$sql."<br>"; 
	echo "错误信息:".$err; 
	}//开源代码phprm.com 
	/****************************************类结束***************************/ 
	 
	global $mysqlhost, $mysqluser, $mysqlpwd, $mysqldb, $backup; 
	$mysqlhost = $mydbhost;          //host name 
	$mysqluser = $mydbuser;          //login name 
	$mysqlpwd = $mydbpw;             //password 
	$mysqldb = $mydbname;            //name of database 
	$d=new db($mysqlhost,$mysqluser,$mysqlpwd,$mysqldb); 
	$d->query("set names &#39;utf8&#39;");
Copier après la connexion

本文链接:

收藏随意^^请保留教程地址.

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Comment corriger les erreurs mysql_native_password non chargé sur MySQL 8.4 Comment corriger les erreurs mysql_native_password non chargé sur MySQL 8.4 Dec 09, 2024 am 11:42 AM

L'un des changements majeurs introduits dans MySQL 8.4 (la dernière version LTS en 2024) est que le plugin « MySQL Native Password » n'est plus activé par défaut. De plus, MySQL 9.0 supprime complètement ce plugin. Ce changement affecte PHP et d'autres applications

Comment analysez-vous et traitez-vous HTML / XML dans PHP? Comment analysez-vous et traitez-vous HTML / XML dans PHP? Feb 07, 2025 am 11:57 AM

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Programme PHP pour compter les voyelles dans une chaîne Programme PHP pour compter les voyelles dans une chaîne Feb 07, 2025 pm 12:12 PM

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

7 fonctions PHP que je regrette de ne pas connaître auparavant 7 fonctions PHP que je regrette de ne pas connaître auparavant Nov 13, 2024 am 09:42 AM

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

La page est vide après que PHP est connecté à MySQL. Quelle est la raison de la fonction Die () non valide? La page est vide après que PHP est connecté à MySQL. Quelle est la raison de la fonction Die () non valide? Apr 01, 2025 pm 03:03 PM

La page est vide après que PHP se connecte à MySQL, et la raison pour laquelle la fonction Die () échoue. Lorsque vous apprenez la connexion entre PHP et la base de données MySQL, vous rencontrez souvent des choses déroutantes ...

Top 10 des plateformes CMS PHP pour les développeurs en 2024 Top 10 des plateformes CMS PHP pour les développeurs en 2024 Dec 05, 2024 am 10:29 AM

CMS signifie Système de gestion de contenu. Il s'agit d'une application logicielle ou d'une plate-forme qui permet aux utilisateurs de créer, gérer et modifier du contenu numérique sans nécessiter de connaissances techniques avancées. Le CMS permet aux utilisateurs de créer et d'organiser facilement du contenu tel que du texte, des images, des vidéos et des documents, et de le publier sur des sites Web ou d'autres plateformes numériques.

See all articles