利用php备份mysql数据库就是把数据生成.sql文件,这样就算是数据备份成功了,恢复时也可以直接读取再一条条执行即可,下面整理了一些备份例子大家有兴趣的可进来参考.
例子,代码如下:
<?php
// 备份数据库
$host = "localhost";
$user = "root"; //数据库账号
$password = ""; //数据库密码
$dbname = "mysql"; //数据库名称
// 这里的账号、密码、名称都是从页面传过来的
if (!mysql_connect($host, $user, $password)) // 连接mysql数据库
{
echo '数据库连接失败,请核对后再试';
exit;
}
if (!mysql_select_db($dbname)) // 是否存在该数据库
{
echo '不存在数据库:' . $dbname . ',请核对后再试';
exit;
}
mysql_query("set names 'utf8'");
$mysql = "set charset utf8;\r\n";
$q1 = mysql_query("show tables");
while ($t = mysql_fetch_array($q1))
{
$table = $t[0];
$q2 = mysql_query("show create table `$table`");
$sql = mysql_fetch_array($q2);
$mysql .= $sql['Create Table'] . ";\r\n";
$q3 = mysql_query("select * from `$table`");
while ($data = mysql_fetch_assoc($q3))
{
$keys = array_keys($data);
$keys = array_map('addslashes', $keys);
$keys = join('`,`', $keys);
$keys = "`" . $keys . "`";
$vals = array_values($data);
$vals = array_map('addslashes', $vals);
$vals = join("','", $vals);
$vals = "'" . $vals . "'";
$mysql .= "insert into `$table`($keys) values($vals);\r\n";
}
}
$filename = $dbname . date('Ymjgi') . ".sql"; //存放路径,默认存放到项目最外层
$fp = fopen($filename, 'w');
fputs($fp, $mysql);
fclose($fp);
echo "数据备份成功";
?>
//例子,代码如下:
#!/usr/bin/php www.Cuoxin.com
<?php
header('Content-Type:text/html;charset=utf-8');
define('BACK_PATH', dirname(__FILE__));
/**
为空数组就备份所有数据库
*/
$back_databases = array('learning','wp');
$mysql_host = 'localhost';
$mysql_user = 'root';
$mysql_passwd = 'root';
if($conn = mysql_connect($mysql_host, $mysql_user, $mysql_passwd)){
$databases = array();
mysql_select_db('mysql', $conn);
$query =mysql_query('show databases',$conn);
while($row = mysql_fetch_array($query))
{
if(emptyempty($row)) continue;
$database = $row[0];
if(!emptyempty($back_databases) && !in_array($database, $back_databases)) continue;
$sql_dir = BACK_PATH . "/{$database}.sql";
$execs = "mysqldump --user={$mysql_user} --password={$mysql_passwd} {$database} > " . $sql_dir;
system($execs);
if(file_exists($sql_dir . '.gz')) {
unlink($sql_dir . '.gz');
}
system('gzip ' . $sql_dir);
}
}
//例子,代码如下:
<?php
$host="##mysql服务器地址##";
$user="##登录帐号##";
$password="##登录密码##";
$dbname="##数据库名##";
$filename="##备份文件路径##";
mysql_connect($host,$user,$password);
mysql_select_db($dbname);
$mysql.="CREATE DATABASE IF NOT EXISTS `".$dbname."`;\r\n";
$mysql.="USE `".$dbname."`;\r\n\r\n";
$q0=mysql_query("set names utf8");
$q1=mysql_query("show tables");
while($t=mysql_fetch_array($q1)){
$table=$t[0];
$mysql.="DROP TABLE IF EXISTS `".$table."`;\r\n";
$q2=mysql_query("show create table `$table`");
$sql=mysql_fetch_array($q2);
$mysql.=$sql['Create Table'].";\r\n\r\n";
$q3=mysql_query("select * from `$table`");
while($data=mysql_fetch_assoc($q3)){
$keys=array_keys($data);
$keys=array_map('addslashes',$keys);
$keys=join('`,`',$keys);
$keys="`".$keys."`";
$vals=array_values($data);
$vals=array_map('addslashes',$vals);
$vals=join("','",$vals);
$vals="'".$vals."'";
$mysql.="insert into `$table`($keys) values($vals);\r\n";
}
$mysql.="\r\n";
}
$fp = fopen($filename,'wb');
fputs($fp,$mysql);
fclose($fp);
include_once('lib/pclzip.lib.php');
$archive = new PclZip($filename.'.zip');
$v_list = $archive->create($filename);
if ($v_list == 0) {
die("Error : ".$archive->errorInfo(true));
}
if(file_exists($filename)){
unlink($filename);
}
echo "Mysql's backup successfully to ".$filename.".zip";
?>
Zip打包备份代码,几乎就是全抄demo,太方便了,代码如下:
<?PHP
include_once('lib/pclzip.lib.php');
$src="##源路径##";
$dest="##目标zip路径##";
$archive = new PclZip($dest);
$v_list = $archive->create($src);
if ($v_list == 0) {
die("Error : ".$archive->errorInfo(true));
}else{
print("Success");
}
?>
pclzip.lib.php这个压缩包文件大家百度去下载这里未提供.
大型站长资讯类网站! https://www.0817zz.com