很多站长朋友们都不太清楚php备份mysql代码,今天小编就来给大家整理php备份mysql代码,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php MYSQL 数据备份类 2、 php备份恢复MYSQL数据库 3、 如何用PHP来实现 备份 mysql 数据库的 功能 ? 就是鼠标单击 让此项目的数据库自动保存到相应的文件夹? 4、 如何用PHP来实现MySQL备份 5、 php mysql如何备份数据 6、 PHP mysql 备份 php MYSQL 数据备份类功能上有:
require_once("backdata.class.php");
$link
=
@mysql_connect("localhost","数据库名","密码")
or
die
('Could
not
connect
to
server.');
mysql_query("use
cms",$link);
mysql_query("set
names
utf8",$link);
$dbbck=new
backupData($link);//实例化它,只要一个链接标识就行了
//备份数据时,如想备份一个数据库中的所有表,你可这样写:
$dbbck->backupTables("cms","./",array('*'));
//备份数据时,如想备份一个数据库中的仅一个表时,你可这样写:
$dbbck->backupTables("cms","./",array('user'));
//备份数据时,如想备份一个数据库中的多个表时,你可这样写:
$dbbck->backupTables("cms","./",array('user','acl','informatoin'));
//注解:$dbbck->backupTables("参1","参2",array());中,
参1为:数据库名,
参2为:要存放备份数据的位置(即目录地址)
第三个为:你要保存那些表
ok...
以下为代码:
复制代码
代码如下:
<?php
/*
*
*简单的一个备份数据类
*author
FC
*
*/
class
backupData{
private
$mysql_link;//链接标识
private
$dbName;//数据库名
private
$dataDir;
//数据所要存放的目录
private
$tableNames;//表名
public
function
__construct($mysql_link){
$this->mysql_link
=
$mysql_link;
}
public
function
backupTables($dbName,$dataDir,$tableNames){//开始备份
$this->dbName
=
$dbName;
$this->dataDir
=
$dataDir;
$this->tableNames
=
$tableNames;
$tables=$this->delarray($this->tableNames);
$sqls='';
foreach($tables
as
$tablename){
if($tablename==''){//表不存在时
continue;
}
//************************以下是形成SQL的前半部分**************
//如果存在表,就先删除
$sqls
.=
"DROP
TABLE
IF
EXISTS
$tablename;\n";
//读取表结构
$rs
=
mysql_query("SHOW
CREATE
TABLE
$tablename",$this->mysql_link);
$row=mysql_fetch_row($rs);
//获得表结构组成SQL
$sqls.=$row['1'].";\n\n";
unset($rs);
unset($row);
//************************以下是形成SQL的后半部分**************
//查寻出表中的所有数据
$rs=mysql_query("select
*
from
$tablename",$this->mysql_link);
//表的字段个数
$field=mysql_num_fields($rs);
//形成此种SQL语句:"INSERT
INTO
`groups`
VALUES('1499e0ca25988d','主任','','0');"
while($rows=mysql_fetch_row($rs)){
$comma='';//逗号
$sqls.="INSERT
INTO
`$tablename`
VALUES(";
for($i=0;$i<$field;$i++){
$sqls.=$comma."'".$rows[$i]."'";
$comma=',';
}
$sqls.=");\n\n\n";
}
}
$backfilepath=$this->dataDir.date("Ymdhis",time()).'.sql';
//写入文件
$filehandle
=
fopen($backfilepath,
"w");
fwrite($filehandle,
$sqls);
fclose($filehandle);
}
private
function
delarray($array){//处理传入进来的数组
foreach($array
as
$tables){
if($tables=='*'){//所有的表(获得表名时不能按常规方式来组成一个数组)
$newtables=mysql_list_tables($this->dbName,$this->mysql_link);
$tableList
=
array();
for
($i
=
0;
$i
<
mysql_numrows($newtables);
$i++){
array_push($tableList,mysql_tablename($newtables,
$i));
}
$tableList=$tableList;
}else{
$tableList=$array;
break;
}
}
return
$tableList;
}
}
php备份恢复MYSQL数据库1、把数据库sql文件查找 CHARACTER
替换成 CHARACTER SET utf8 或 CHARACTER = utf8
2、到phpmyadmin 创建一个新的数据库的时候应该选 整理 latin1_swedish_ci
3、到phpmyadmin 进入新建的数据库,导入数据库文件
4、用UltraEdit转换所有ANSI格式的php源码文件为UTF-8格式:File --> Conversions --> ASCII to UTF-8
5、在php源码文件中必须加入:
在<head>后加入
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
6、在连接数据DB的文件中找到类似一下代码
$host="localhost"; $DBname="aa"; //数据库名字$user= "root"; //用户名$passwd = ""; //密码$link = mysql_connect($host,$user,$passwd) or die ("Fail");
$db = mysql_select_db($DBname, $link) or die ("Fail"); //连接
// 要在真正query DB取出资料前,必须加入下面3行mysql_query才可以:
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER_SET_CLIENT=utf8");
mysql_query("SET CHARACTER_SET_RESULTS=utf8");
7、在php源码中, 如有应用htmlentities和htmlspecialchars时需要注意:
要似如下格式:
$chars = htmlentities($chars,ENT_QUOTES,"UTF-8");
$chars = htmlspecialchars($chars,ENT_QUOTES,"UTF-8");
如有应用addslashes()或mysql_real_escape_string()记得用以下:
$chars = stripslashes($chars);
另外如果需要的话还可设置:
1、php.ini 设定php中的语系为 (记得restart)
default_charset = "utf-8"
2、my.ini 设定MySQL中的语系为 (记得restart)
[mysqld]
init_connect='SET NAMES utf8'
default-character-set=utf8
[client]
default-character-set = utf8
本人刚接触PHP+MySQL,才疏学浅,希望能给有需要的得到帮助。
请大家指点,谢谢!
如何用PHP来实现 备份 mysql 数据库的 功能 ? 就是鼠标单击 让此项目的数据库自动保存到相应的文件夹?我想到的有三种思路吧
1.如果服务器允许mysqldump 并且没有禁止PHP的shell_exec()这个函数的话
直接在PHP里面执行mysqldump就可以了。
2.通过mysql_query('show tables')的返回值遍历每个表,循环对每个表使用查询语句
select * into outfile '路径/文件名' from 表名
缺点是这样得到的是纯数据,恢复数据的时候你需要额外再写脚本
3.同样通过show tables返回表名,遍历每个表,通过select 语句查询,然后逐条结果处理,比如手工添加drop table 和create table 以及insert into等等,然后再写入文件。这样得到的备份数据是比较接近mysqldump的结果的,各种工具都可以用来恢复数据。缺点是如果数据库太大的话,效率不好说
总之我不推荐用PHP来实现mysql数据的备份,如果可能的话还是用mysqldump吧
如何用PHP来实现MySQL备份备份数据库并下载到本地【db_backup.php】
<?php
// 设置SQL文件保存文件名
$filename=date("Y-m-d_H-i-s")."-".$cfg_dbname.".sql";
// 所保存的文件名
header("Content-disposition:filename=".$filename);
header("Content-type:application/octetstream");
header("Pragma:no-cache");
header("Expires:0");
// 获取当前页面文件路径,SQL文件就导出到此文件夹内
$tmpFile = (dirname(__FILE__))."\\".$filename;
// 用MySQLDump命令导出数据库
exec("mysqldump -u$cfg_dbuser -p$cfg_dbpwd --default-character-set=utf8 $cfg_dbname > ".$tmpFile);
$file = fopen($tmpFile, "r"); // 打开文件
echo fread($file,filesize($tmpFile));
fclose($file);
exit;
?>
php mysql如何备份数据我一般用二种方法:
1.SQL文件数据备份;
下载一个Navicat Premium,使用这个软件,正确连接并访问数据库,
点中你想要备份的数据库,按右键使用转存SQL文件,就会出现你要备份的提示框,保存即可;
若要导进则用运行SQL文件,非常方便的导入单个数据库的,但这种只适合于小数据量的数据库(50万条以下);
2.底层备份,但这种备份要求安装是同一版本的mysql才适合,否则会出现未知错误;
直接找到mysql安装目录,找到data文件夹全部拷呗到你想备份的地方即可,还原就拷回来即可。适合大数据量的备份方法!
3.至于楼主硬要用PHP备份数据的话,你可以参考phpadmin和dedecms程序备份数据的方法,但这种执行效率很低的!
PHP mysql 备份这个是错的呀,怎么可能输出到文件夹呢,应该下面这样才对:
$mysqlstr = "C:\\AppServ\\MySQL\\bin\\mysqldump -uroot -hlocalhost -phwzero --opt -B gba > bak/BAK20090323.SQL"
不能备份到bak/文件夹,必须是这个文件夹下的某个文件。
关于php备份mysql代码的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php备份mysql代码 php备份数据库代码的详细内容...