phpdb2数据库备份还原原失败~

基于PHP的MySQL数据库备份恢复系统的研究和实现
目前整个社会对计算机信息技术的依赖程度越来越高,网站以及各种基于Web的B/S型的应用系统逐渐成各个单位与内部、外界进行信息交流和共享的重要平台,其数据的规模也越来越大,内、外部数据均呈几何级增长,相关的数据便成了各个单位最重要的资产,数据的丢失或毁坏可能会带来不可估量的损失。然而,病毒入侵、硬件故障、软件崩溃等难以预测的意外问题或者是误操作等人为因素都时刻威胁着数据的安全,因而如何保证数据的完整性和安全性便成了每个管理员都必需考虑的问题。  MySQL是一个跨平台的开源关系型数据库管理系统,目前MySQL被广泛地应用在Int...展开
目前整个社会对计算机信息技术的依赖程度越来越高,网站以及各种基于Web的B/S型的应用系统逐渐成各个单位与内部、外界进行信息交流和共享的重要平台,其数据的规模也越来越大,内、外部数据均呈几何级增长,相关的数据便成了各个单位最重要的资产,数据的丢失或毁坏可能会带来不可估量的损失。然而,病毒入侵、硬件故障、软件崩溃等难以预测的意外问题或者是误操作等人为因素都时刻威胁着数据的安全,因而如何保证数据的完整性和安全性便成了每个管理员都必需考虑的问题。  MySQL是一个跨平台的开源关系型数据库管理系统,目前MySQL被广泛地应用在Internet上的中小型网站及各种应用系统中。目前备份数据库的主要方法是用Mysqldump、Mysqlhotcopy等程序备份或直接拷贝数据库文件,但是每种方法都有其缺点。  基于目前备份方法的不足,MySQL数据库备份恢复系统将采用php技术,构建B\S结构的数据库备份恢复系统。通过IE浏览器即可实现对服务器上部署的MySQL数据库进行灵活备份恢复。系统自动识别MySQL版本格式,然后进行备份恢复;不同编码数据库之间可直接备份与恢复,系统自动识别数据编码;备份的数据将以.php的格式文件保存,备份数据可以下载到任何机器保存,从而更大限度的保证数据安全。  MySQL数据库备份恢复系统安装在LAMP(Linux\Apache\MySQL\PHP)环境的服务器上,可实现对本服务器上的所有MySQL数据库或有选择的对某个数据库、某张数据表进行备份恢复工作,使用非常灵活方便;还可以将备份数据安全地下载保存到另外的存储设备上,恢复数据的时候也不需要考虑机器硬件的不同,数据库版本、数据编码的差异,能保证数据的安全恢复。从而让计算机信息管理员从复杂、机械、安全性不高的传统备份恢复方式中解脱,提高工作效率和数据安全性。收起
学位授予单位
TP311.132.3
机标分类号
本文读者也读过
加载中,请稍候
.客服电话
&&8:00-11:30,13:00-17:00(工作日)织梦模板建站、织梦仿站,推荐选跟版网(专业织梦模板定制下载站),您可以把织梦模板网:
跟版网(www.genban.org)是专业的DEDECMS模板下载和定制开发服务商!
PHP备份/还原MySQL数据库的代码-PHPphp技巧
& &以下内容您可能感兴趣: &
以下是代码: 一、备份数据库并下载到本地【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__))."\\".$ // 用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);
二、还原数据库【db_restore.php】
代码如下: &form id="form1" name="form1" method="post" action=""& 【数据库SQL文件】:&input id="sqlFile" name="sqlFile" type="file" /& &input id="submit" name="submit" type="submit" value="还原" /& &/form& &?php // 我的数据库信息都存放到config.php文件中,所以加载此文件,如果你的不是存放到该文件中,注释此行即可; require_once((dirname(__FILE__).'/../../include/config.php')); if ( isset ( $_POST['sqlFile'] ) ) { $file_name = $_POST['sqlFile']; //要导入的SQL文件名 $dbhost = $cfg_ //数据库主机名 $dbuser = $cfg_ //数据库用户名 $dbpass = $cfg_ //数据库密码 $dbname = $cfg_ //数据库名 set_time_limit(0); //设置超时时间为0,表示一直执行。当php在safe mode模式下无效,此时可能会导致导入超时,此时需要分段导入 $fp = @fopen($file_name, "r") or die("不能打开SQL文件 $file_name");//打开文件 mysql_connect($dbhost, $dbuser, $dbpass) or die("不能连接数据库 $dbhost");//连接数据库 mysql_select_db($dbname) or die ("不能打开数据库 $dbname");//打开数据库 echo "&p&正在清空数据库,请稍等....&br&"; $result = mysql_query("SHOW tables"); while ($currow=mysql_fetch_array($result)) { mysql_query("drop TABLE IF EXISTS $currow[0]"); echo "清空数据表【".$currow[0]."】成功!&br&"; } echo "&br&恭喜你清理MYSQL成功&br&"; echo "正在执行导入数据库操作&br&"; // 导入数据库的MySQL命令 exec("mysql -u$cfg_dbuser -p$cfg_dbpwd $cfg_dbname & ".$file_name); echo "&br&导入完成!"; mysql_close(); } ?&
跟版网-专业织梦模板下载平台,转载请注明出处:
& &精心为您推荐: &
& &邀您关注: &
扫描左侧二维码即可在手机端访问此页面
扫描左侧二维码即可关注跟版网官方微信公众号,获取金币模板,还可以免费仿站哦!
扫描左侧二维码即可加入跟版网官方群,免费获取金币资源并可以与其他织梦高手共同交流学习
跟版网率先实现织梦的三网合一网站,从即日起()日,跟版网会陆续免费分享一批金币资源给需要的朋友,关注本站认证官方微信公众账号并回复相应的提取码,系统会自动将下载地址发送给您,同时这些金币资源也会分享在官方的QQ群中,欢迎各位朋友踊跃加入。另外本站后期会每周选择大家比较喜欢的网站仿制,并免费分享给大家,还有免费送金币活动哦!
- 织梦手机模板
售价:16金币
- dede源码分享
售价:0金币
- 织梦html5模板
售价:16金币
- dede源码分享
售价:0金币
- 织梦html5模板
售价:40金币
& & & 跟版网竭力打造中国最大的织梦源码和织梦模板商城,我们有一批经验丰富的设计师和程序员,发展五年,跟版网拥有丰富的织梦模板,欢迎您的咨询,我们将竭诚为您提供最优质的服务。
& & & 跟版网织梦源码商城坚持“创意+品质+服务”的高端理念,运用创意设计的理念为您塑造高品质的网络品牌形象。凭借五年的探索和实践,跟版网织梦源码商城拥有一支经验丰富、技术精湛、尽职尽责的网络服务团队。精品网站建设,从跟版网织梦源码商城建站开始。
& & & 跟版网织梦源码和模板可分为两种形式获得,一种是官方源码,另外一种是会员共享源码。两种源码都分为免费和收费两种形式。
& & & 跟版网官方收费源码可通过支付费用获得,具体操作流程可查看网址:。会员共享源码可通过共享模板获取金币下载。如觉得麻烦,可以联系客服QQ:进行金币充值,充值后可随意下载。最近上网找了一些关于备份mysql数据库的方法,主要就是通过网页的方法导出数据库的sql 文件,找到个不错的代码,但发现中文导出会乱码,于是稍微修改了一下,下面是备份的代码
view plaincopy to clipboardprint?
&!DOCTYPE html PUBLIC &-//W3C//DTD XHTML 1.0 Transitional//EN& &&&&&
&html xmlns=&&&&&
&meta http-equiv=&Content-Type& content=&text/ charset=utf-8& /&&&
&title&数据库备份&/title&&&
&link href=&user/input.css& mce_href=&user/input.css& rel=&stylesheet& type=&text/css& /&&&
global $mysqlhost, $mysqluser, $mysqlpwd, $&&
$mysqlhost=&localhost:3306&; //host name&&
$mysqluser=&root&;&&&&&&&&&&&&&&& //login name&&
$mysqlpwd=&zgqyb&;&&&&&&&&&&&&&&& //password&&
$mysqldb=&zgqyboa&;&&&&&&&&& //name of database&&
include(&mydb.php&);&&
$d=new db($mysqlhost,$mysqluser,$mysqlpwd,$mysqldb);&&
/*--------------界面--------------*/if(!$_POST['act']){/*----------------------*/&
$msgs[]=&服务器备份目录为F://SQLbak&;&&
$msgs[]=&对于较大的数据表,强烈建议使用分卷备份&;&&
$msgs[]=&只有选择备份到服务器,才能使用分卷备份功能&;&&
show_msg($msgs);&&
&form name=&form1& method=&post& action=&backup.php&&&&
&&& &table width=&99%& border=&1& cellpadding='0' cellspacing='1'&&&
&&&&& &tr align=&center& class='header'&&td colspan=&2&&数据备份&/td&&/tr&&&
&&&&& &tr&&td colspan=&2&&备份方式&/td&&/tr&&&
&&&&& &tr&&td&&input type=&radio& name=&bfzl& value=&quanbubiao&&&&&&&&&&& 备份全部数据&/td&&td&备份全部数据表中的数据到一个备份文件&/td&&/tr&&&
&&&&& &tr&&td&&input type=&radio& name=&bfzl& value=&danbiao&&备份单张表数据&&&
&&&&&&&&& &select name=&tablename&&&option value=&&&请选择&/option&&&
&&&&&&&&&&& &?&&
&&& $d-&query(&show table status from $mysqldb&);&&
&&& while($d-&nextrecord()){&&
&&& echo &&option value='&.$d-&f('Name').&'&&.$d-&f('Name').&&/option&&;}&&
&&&&&&&&& &/select&&/td&&td&备份选中数据表中的数据到单独的备份文件&/td&&/tr&&&
&&&&& &tr&&td colspan=&2&&使用分卷备份&/td&&/tr&&&
&&&&& &tr&&td colspan=&2&&&input type=&checkbox& name=&fenjuan& value=&yes&&&&
&&&&&&&&& 分卷备份 &input name=&filesize& type=&text& size=&10&&K&/td&&/tr&&&
&&&&& &tr&&td colspan=&2&&选择目标位置&/td&&/tr&&&
&&&&& &tr&&td colspan=&2&&&input type=&radio& name=&weizhi& value=&server& checked&备份到服务器&/td&&/tr&&tr class=&cells&&&td colspan='2'& &input type=&radio& name=&weizhi& value=&localpc&&&&
&&&&&&&&& 备份到本地&/td&&/tr&&&
&&&&& &tr&&td colspan=&2& align='center'&&input type=&submit& name=&act& value=&备份&&&/td&&/tr&&&
&&& &/table&&/form&&&
&?/*-------------界面结束-------------*/}/*---------------------------------*/&
/*----*/else{/*--------------主程序-----------------------------------------*/&
if($_POST['weizhi']==&localpc&&&$_POST['fenjuan']=='yes')&&
{$msgs[]=&只有选择备份到服务器,才能使用分卷备份功能&;&&
show_msg($msgs); pageend();}&&
if($_POST['fenjuan']==&yes&&&!$_POST['filesize'])&&
{$msgs[]=&您选择了分卷备份功能,但未填写分卷文件大小&;&&
show_msg($msgs); pageend();}&&
if($_POST['weizhi']==&server&&&!writeable(&F://SQLbak&))&&
{$msgs[]=&备份文件存放目录'F://SQLbak'不可写,请修改目录属性&;&&
show_msg($msgs); pageend();}&&
/*----------备份全部表-------------*/if($_POST['bfzl']==&quanbubiao&){/*----*/&
/*----不分卷*/if(!$_POST['fenjuan']){/*--------------------------------*/&
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);&&
@mysql_query ( &set names 'UTF8';& );&&
$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['weizhi']==&localpc&) down_file($sql,$filename);&&
elseif($_POST['weizhi']==&server&)&&
{if(write_file($sql,$filename))&&
$msgs[]=&全部数据表数据备份完成,生成备份文件'F://SQLbak//$filename'&;&&
else $msgs[]=&备份全部数据表失败&;&&
show_msg($msgs);&&
pageend();&&
/*-----------------不要卷结束*/}/*-----------------------*/&
/*-----------------分卷*/else{/*-------------------------*/&
if(!$_POST['filesize'])&&
{$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['filesize']*1000){&&
&&&& $filename.=(&_v&.$p.&.sql&);&&
&&&& if(write_file($sql,$filename))&&
&&&& $msgs[]=&全部数据表-卷-&.$p.&-数据备份完成,生成备份文件'F://SQLbak//$filename'&;&&
&&&& else $msgs[]=&备份表-&.$_POST['tablename'].&-失败&;&&
&&&& $p++;&&
&&&& $filename=date(&Ymd&,time()).&_all&;&&
&&&& $sql=&&;}&&
if($sql!=&&){$filename.=(&_v&.$p.&.sql&);&&&&
if(write_file($sql,$filename))&&
$msgs[]=&全部数据表-卷-&.$p.&-数据备份完成,生成备份文件'.F://SQLbak//$filename'&;}&&
show_msg($msgs);&&
/*---------------------分卷结束*/}/*--------------------------------------*/&
/*--------备份全部表结束*/}/*---------------------------------------------*/&
/*--------备份单表------*/elseif($_POST['bfzl']==&danbiao&){/*------------*/&
if(!$_POST['tablename'])&&
{$msgs[]=&请选择要备份的数据表&; show_msg($msgs); pageend();}&&
/*--------不分卷*/if(!$_POST['fenjuan']){/*-------------------------------*/&
$sql=make_header($_POST['tablename']);&&
$d-&query(&select * from &.$_POST['tablename']);&&
$num_fields=$d-&nf();&&
while($d-&nextrecord())&&
{$sql.=make_record($_POST['tablename'],$num_fields);}&&
$filename=date(&Ymd&,time()).&_&.$_POST['tablename'].&.sql&;&&
if($_POST['weizhi']==&localpc&) down_file($sql,$filename);&&
elseif($_POST['weizhi']==&server&)&&
{if(write_file($sql,$filename))&&
$msgs[]=&表-&.$_POST['tablename'].&-数据备份完成,生成备份文件'F://SQLbak//$filename'&;&&
else $msgs[]=&备份表-&.$_POST['tablename'].&-失败&;&&
show_msg($msgs);&&
pageend();&&
/*----------------不要卷结束*/}/*------------------------------------*/&
/*----------------分卷*/else{/*--------------------------------------*/&
if(!$_POST['filesize'])&&
{$msgs[]=&请填写备份文件分卷大小&; show_msg($msgs);pageend();}&&
$sql=make_header($_POST['tablename']); $p=1;&&&
$filename=date(&Ymd&,time()).&_&.$_POST['tablename'];&&
$d-&query(&select * from &.$_POST['tablename']);&&
$num_fields=$d-&nf();&&
while ($d-&nextrecord())&&&
&&& $sql.=make_record($_POST['tablename'],$num_fields);&&
&&&&& if(strlen($sql)&=$_POST['filesize']*1000){&&
&&&& $filename.=(&_v&.$p.&.sql&);&&
&&&& if(write_file($sql,$filename))&&
&&&& $msgs[]=&表-&.$_POST['tablename'].&-卷-&.$p.&-数据备份完成,生成备份文件'F://SQLbak//$filename'&;&&
&&&& else $msgs[]=&备份表-&.$_POST['tablename'].&-失败&;&&
&&&& $p++;&&
&&&& $filename=date(&Ymd&,time()).&_&.$_POST['tablename'];&&
&&&& $sql=&&;}&&
if($sql!=&&){$filename.=(&_v&.$p.&.sql&);&&&&
if(write_file($sql,$filename))&&
$msgs[]=&表-&.$_POST['tablename'].&-卷-&.$p.&-数据备份完成,生成备份文件'F://SQLbak//filename'&;}&&
show_msg($msgs);&&
/*----------分卷结束*/}/*--------------------------------------------------*/&
/*----------备份单表结束*/}/*----------------------------------------------*/&
/*---*/}/*-------------主程序结束------------------------------------------*/&
function write_file($sql,$filename)&&
if(!@$fp=fopen(&F://SQLbak//&.$filename,&w+&)) {$re= echo &failed to open target file&;}&&
if(!@fwrite($fp,$sql)) {$re= echo &failed to write file&;}&&
if(!@fclose($fp)) {$re= echo &failed to close target file&;}&&
return $&&
function down_file($sql,$filename)&&
ob_end_clean();&&
header(&Content-Encoding: utf-8&);&&
header(&Content-Type: &.(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') ? 'application/octetstream' : 'application/octet-stream'));&&
header(&Content-Disposition: &.(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') ? ' ' : ' ').&filename=&.$filename);&&
header(&Content-Length: &.strlen($sql));&&
header(&Pragma: no-cache&);&&
header(&Expires: 0&);&&
$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&, 'w'))&&
@fclose($fp);&&
@unlink(&$dir/test.test&);&&
$writeable = 1;&&
$writeable = 0;&&
return $&&
function make_header($table)&&
{global $d;&&
$sql=&DROP TABLE IF EXISTS &.$table.&/n&;&&
$d-&query(&show create table &.$table);&&
$d-&nextrecord();&&
$tmp=preg_replace(&//n/&,&&,$d-&f(&Create Table&));&&
$sql.=$tmp.&/n&;&&
return $&&
function make_record($table,$num_fields)&&
{global $d;&&
$comma=&&;&&
$sql .= &INSERT INTO &.$table.& VALUES(&;&&
for($i = 0; $i & $num_ $i++)&&&
{$sql .= ($comma.&'&.mysql_escape_string($d-&record[$i]).&'&); $comma = &,&;}&&
$sql .= &)/n&;&&
return $&&
function show_msg($msgs)&&
$title=&提示:&;&&
echo &&table width='100%' border='1'&&& cellpadding='0' cellspacing='1'&&;&&
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()&&
&!DOCTYPE html PUBLIC &-//W3C//DTD XHTML 1.0 Transitional//EN& &&&
&html xmlns=&&&
&meta http-equiv=&Content-Type& content=&text/ charset=utf-8& /&
&title&数据库备份&/title&
&link href=&user/input.css& mce_href=&user/input.css& rel=&stylesheet& type=&text/css& /&
global $mysqlhost, $mysqluser, $mysqlpwd, $
$mysqlhost=&localhost:3306&; //host name
$mysqluser=&root&;&&&&&&&&&&&&&&& //login name
$mysqlpwd=&zgqyb&;&&&&&&&&&&&&&&& //password
$mysqldb=&zgqyboa&;&&&&&&&&& //name of database
include(&mydb.php&);
$d=new db($mysqlhost,$mysqluser,$mysqlpwd,$mysqldb);
/*--------------界面--------------*/if(!$_POST['act']){/*----------------------*/
$msgs[]=&服务器备份目录为F://SQLbak&;
$msgs[]=&对于较大的数据表,强烈建议使用分卷备份&;
$msgs[]=&只有选择备份到服务器,才能使用分卷备份功能&;
show_msg($msgs);
&form name=&form1& method=&post& action=&backup.php&&
&&& &table width=&99%& border=&1& cellpadding='0' cellspacing='1'&
&&&&& &tr align=&center& class='header'&&td colspan=&2&&数据备份&/td&&/tr&
&&&&& &tr&&td colspan=&2&&备份方式&/td&&/tr&
&&&&& &tr&&td&&input type=&radio& name=&bfzl& value=&quanbubiao&&&&&&&&&&& 备份全部数据&/td&&td&备份全部数据表中的数据到一个备份文件&/td&&/tr&
&&&&& &tr&&td&&input type=&radio& name=&bfzl& value=&danbiao&&备份单张表数据
&&&&&&&&& &select name=&tablename&&&option value=&&&请选择&/option&
&&&&&&&&&&& &?
&&& $d-&query(&show table status from $mysqldb&);
&&& while($d-&nextrecord()){
&&& echo &&option value='&.$d-&f('Name').&'&&.$d-&f('Name').&&/option&&;}
&&&&&&&&& &/select&&/td&&td&备份选中数据表中的数据到单独的备份文件&/td&&/tr&
&&&&& &tr&&td colspan=&2&&使用分卷备份&/td&&/tr&
&&&&& &tr&&td colspan=&2&&&input type=&checkbox& name=&fenjuan& value=&yes&&
&&&&&&&&& 分卷备份 &input name=&filesize& type=&text& size=&10&&K&/td&&/tr&
&&&&& &tr&&td colspan=&2&&选择目标位置&/td&&/tr&
&&&&& &tr&&td colspan=&2&&&input type=&radio& name=&weizhi& value=&server& checked&备份到服务器&/td&&/tr&&tr class=&cells&&&td colspan='2'& &input type=&radio& name=&weizhi& value=&localpc&&
&&&&&&&&& 备份到本地&/td&&/tr&
&&&&& &tr&&td colspan=&2& align='center'&&input type=&submit& name=&act& value=&备份&&&/td&&/tr&
&&& &/table&&/form&
&?/*-------------界面结束-------------*/}/*---------------------------------*/
/*----*/else{/*--------------主程序-----------------------------------------*/
if($_POST['weizhi']==&localpc&&&$_POST['fenjuan']=='yes')
{$msgs[]=&只有选择备份到服务器,才能使用分卷备份功能&;
show_msg($msgs); pageend();}
if($_POST['fenjuan']==&yes&&&!$_POST['filesize'])
{$msgs[]=&您选择了分卷备份功能,但未填写分卷文件大小&;
show_msg($msgs); pageend();}
if($_POST['weizhi']==&server&&&!writeable(&F://SQLbak&))
{$msgs[]=&备份文件存放目录'F://SQLbak'不可写,请修改目录属性&;
show_msg($msgs); pageend();}
/*----------备份全部表-------------*/if($_POST['bfzl']==&quanbubiao&){/*----*/
/*----不分卷*/if(!$_POST['fenjuan']){/*--------------------------------*/
if(!$tables=$d-&query(&show table status from $mysqldb&))
{$msgs[]=&读数据库结构错误&; show_msg($msgs); pageend();}
while($d-&nextrecord($tables))
$table=$d-&f(&Name&);
$sql.=make_header($table);
@mysql_query ( &set names 'UTF8';& );
$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['weizhi']==&localpc&) down_file($sql,$filename);
elseif($_POST['weizhi']==&server&)
{if(write_file($sql,$filename))
$msgs[]=&全部数据表数据备份完成,生成备份文件'F://SQLbak//$filename'&;
else $msgs[]=&备份全部数据表失败&;
show_msg($msgs);
pageend();
/*-----------------不要卷结束*/}/*-----------------------*/
/*-----------------分卷*/else{/*-------------------------*/
if(!$_POST['filesize'])
{$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['filesize']*1000){
&&&& $filename.=(&_v&.$p.&.sql&);
&&&& if(write_file($sql,$filename))
&&&& $msgs[]=&全部数据表-卷-&.$p.&-数据备份完成,生成备份文件'F://SQLbak//$filename'&;
&&&& else $msgs[]=&备份表-&.$_POST['tablename'].&-失败&;
&&&& $p++;
&&&& $filename=date(&Ymd&,time()).&_all&;
&&&& $sql=&&;}
if($sql!=&&){$filename.=(&_v&.$p.&.sql&);&
if(write_file($sql,$filename))
$msgs[]=&全部数据表-卷-&.$p.&-数据备份完成,生成备份文件'.F://SQLbak//$filename'&;}
show_msg($msgs);
/*---------------------分卷结束*/}/*--------------------------------------*/
/*--------备份全部表结束*/}/*---------------------------------------------*/
/*--------备份单表------*/elseif($_POST['bfzl']==&danbiao&){/*------------*/
if(!$_POST['tablename'])
{$msgs[]=&请选择要备份的数据表&; show_msg($msgs); pageend();}
/*--------不分卷*/if(!$_POST['fenjuan']){/*-------------------------------*/
$sql=make_header($_POST['tablename']);
$d-&query(&select * from &.$_POST['tablename']);
$num_fields=$d-&nf();
while($d-&nextrecord())
{$sql.=make_record($_POST['tablename'],$num_fields);}
$filename=date(&Ymd&,time()).&_&.$_POST['tablename'].&.sql&;
if($_POST['weizhi']==&localpc&) down_file($sql,$filename);
elseif($_POST['weizhi']==&server&)
{if(write_file($sql,$filename))
$msgs[]=&表-&.$_POST['tablename'].&-数据备份完成,生成备份文件'F://SQLbak//$filename'&;
else $msgs[]=&备份表-&.$_POST['tablename'].&-失败&;
show_msg($msgs);
pageend();
/*----------------不要卷结束*/}/*------------------------------------*/
/*----------------分卷*/else{/*--------------------------------------*/
if(!$_POST['filesize'])
{$msgs[]=&请填写备份文件分卷大小&; show_msg($msgs);pageend();}
$sql=make_header($_POST['tablename']); $p=1;
$filename=date(&Ymd&,time()).&_&.$_POST['tablename'];
$d-&query(&select * from &.$_POST['tablename']);
$num_fields=$d-&nf();
while ($d-&nextrecord())
&&& $sql.=make_record($_POST['tablename'],$num_fields);
&&&&& if(strlen($sql)&=$_POST['filesize']*1000){
&&&& $filename.=(&_v&.$p.&.sql&);
&&&& if(write_file($sql,$filename))
&&&& $msgs[]=&表-&.$_POST['tablename'].&-卷-&.$p.&-数据备份完成,生成备份文件'F://SQLbak//$filename'&;
&&&& else $msgs[]=&备份表-&.$_POST['tablename'].&-失败&;
&&&& $p++;
&&&& $filename=date(&Ymd&,time()).&_&.$_POST['tablename'];
&&&& $sql=&&;}
if($sql!=&&){$filename.=(&_v&.$p.&.sql&);&
if(write_file($sql,$filename))
$msgs[]=&表-&.$_POST['tablename'].&-卷-&.$p.&-数据备份完成,生成备份文件'F://SQLbak//filename'&;}
show_msg($msgs);
/*----------分卷结束*/}/*--------------------------------------------------*/
/*----------备份单表结束*/}/*----------------------------------------------*/
/*---*/}/*-------------主程序结束------------------------------------------*/
function write_file($sql,$filename)
if(!@$fp=fopen(&F://SQLbak//&.$filename,&w+&)) {$re= echo &failed to open target file&;}
if(!@fwrite($fp,$sql)) {$re= echo &failed to write file&;}
if(!@fclose($fp)) {$re= echo &failed to close target file&;}
function down_file($sql,$filename)
ob_end_clean();
header(&Content-Encoding: utf-8&);
header(&Content-Type: &.(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') ? 'application/octetstream' : 'application/octet-stream'));
header(&Content-Disposition: &.(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') ? ' ' : ' ').&filename=&.$filename);
header(&Content-Length: &.strlen($sql));
header(&Pragma: no-cache&);
header(&Expires: 0&);
$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&, 'w'))
@fclose($fp);
@unlink(&$dir/test.test&);
$writeable = 1;
$writeable = 0;
function make_header($table)
{global $d;
$sql=&DROP TABLE IF EXISTS &.$table.&/n&;
$d-&query(&show create table &.$table);
$d-&nextrecord();
$tmp=preg_replace(&//n/&,&&,$d-&f(&Create Table&));
$sql.=$tmp.&/n&;
function make_record($table,$num_fields)
{global $d;
$comma=&&;
$sql .= &INSERT INTO &.$table.& VALUES(&;
for($i = 0; $i & $num_ $i++)
{$sql .= ($comma.&'&.mysql_escape_string($d-&record[$i]).&'&); $comma = &,&;}
$sql .= &)/n&;
function show_msg($msgs)
$title=&提示:&;
echo &&table width='100%' border='1'&&& cellpadding='0' cellspacing='1'&&;
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()
还原的代码,这段代码我没用过,个人认为在网页上加上这个功能实在是不安全,还原还是通过其它方法吧
view plaincopy to clipboardprint?
session_start();&&
global $mysqlhost, $mysqluser, $mysqlpwd, $&&
$mysqlhost=&localhost:3306&; //host name&&
$mysqluser=&root&;&&&&&&&&&&&&&&& //login name&&
$mysqlpwd=&zgqyb&;&&&&&&&&&&&&&&& //password&&
$mysqldb=&test&;&&&&&&&&& //name of database&&
include(&mydb.php&);&&
$d=new db($mysqlhost,$mysqluser,$mysqlpwd,$mysqldb);&&
/******界面*/if(!$_POST['act']&&!$_SESSION['data_file']){/**********************/&
$msgs[]=&本功能在恢复备份数据的同时,将全部覆盖原有数据,请确定是否需要恢复,以免造成数据损失&;&&
$msgs[]=&数据恢复功能只能恢复由dShop导出的数据文件,其他软件导出格式可能无法识别&;&&
$msgs[]=&从本地恢复数据需要服务器支持文件上传并保证数据尺寸小于允许上传的上限,否则只能使用从服务器恢复&;&&
$msgs[]=&如果您使用了分卷备份,只需手工导入文件卷1,其他数据文件会由系统自动导入&;&&
show_msg($msgs);&&
&form action=&& method=&post& enctype=&multipart/form-data& name=&restore.php&&&&
&table width=&91%& border=&0& cellpadding=&0& cellspacing=&1&&&&
&tr align=&center& class=&header&&&td colspan=&2& align=&center&&数据恢复&/td&&/tr&&&
&tr&&td width=&33%&&&input type=&radio& name=&restorefrom& value=&server& checked&&&
从服务器文件恢复 &/td&&td width=&67%&&&select name=&serverfile&&&&
&&&&& &option value=&&&-请选择-&/option&&&
$handle=opendir('./backup');&&
while ($file = readdir($handle)) {&&
&&&&& if(eregi(&^[0-9]{8,8}([0-9a-z_]+)(/.sql)$&,$file)) echo &&option value='$file'&$file&/option&&;}&&
closedir($handle);&&&
&&& &/select& &/td&&/tr&&&
&tr&&td&&input type=&radio& name=&restorefrom& value=&localpc&&&&&&&&&& 从本地文件恢复&/td&&&
&td&&input type=&hidden& name=&MAX_FILE_SIZE& value=&1500000&&&input type=&file& name=&myfile&&&/td&&/tr&&&
&tr&&td colspan=&2& align=&center&& &input type=&submit& name=&act& value=&恢复&&&/td&&&& &/tr&&/table&&/form&&&
&?/**************************界面结束*/}/*************************************/&
/****************************主程序*/if($_POST['act']==&恢复&){/**************/&
/***************服务器恢复*/if($_POST['restorefrom']==&server&){/**************/&
if(!$_POST['serverfile'])&&
{$msgs[]=&您选择从服务器文件恢复备份,但没有指定备份文件&;&&
&&& show_msg($msgs); pageend(); }&&
if(!eregi(&_v[0-9]+&,$_POST['serverfile']))&&
{$filename=&./backup/&.$_POST['serverfile'];&&
if(import($filename)) $msgs[]=&备份文件&.$_POST['serverfile'].&成功导入数据库&;&&
else $msgs[]=&备份文件&.$_POST['serverfile'].&导入失败&;&&
show_msg($msgs); pageend();&&&&
$filename=&./backup/&.$_POST['serverfile'];&&
if(import($filename)) $msgs[]=&备份文件&.$_POST['serverfile'].&成功导入数据库&;&&
else {$msgs[]=&备份文件&.$_POST['serverfile'].&导入失败&;show_msg($msgs);pageend();}&&
$voltmp=explode(&_v&,$_POST['serverfile']);&&
$volname=$voltmp[0];&&
$volnum=explode(&.sq&,$voltmp[1]);&&
$volnum=intval($volnum[0])+1;&&
$tmpfile=$volname.&_v&.$volnum.&.sql&;&&
if(file_exists(&./backup/&.$tmpfile))&&
&&& $msgs[]=&程序将在3秒钟后自动开始导入此分卷备份的下一部份:文件&.$tmpfile.&,请勿手动中止程序的运行,以免数据库结构受损&;&&
&&& $_SESSION['data_file']=$&&
&&& show_msg($msgs);&&
&&& sleep(3);&&
&&& echo &&mce:script language='javascript'&&!--&&
&&& echo &location='restore.php';&;&&&
&&& echo &&&
// --&&/mce:script&&;&&&
&&& $msgs[]=&此分卷备份全部导入成功&;&&
&&& show_msg($msgs);&&
/**************服务器恢复结束*/}/********************************************/&
/*****************本地恢复*/if($_POST['restorefrom']==&localpc&){/**************/&
switch ($_FILES['myfile']['error'])&&
$msgs[]=&您上传的文件大于服务器限定值,上传未成功&;&&
$msgs[]=&未能从本地完整上传备份文件&;&&
$msgs[]=&从本地上传备份文件失败&;&&
&&&&& case 0:&&
if($msgs){show_msg($msgs);pageend();}&&
$fname=date(&Ymd&,time()).&_&.sjs(5).&.sql&;&&
if (is_uploaded_file($_FILES['myfile']['tmp_name'])) {&&
&&&&& copy($_FILES['myfile']['tmp_name'], &./backup/&.$fname);}&&
if (file_exists(&./backup/&.$fname))&&&
$msgs[]=&本地备份文件上传成功&;&&
if(import(&./backup/&.$fname)) {$msgs[]=&本地备份文件成功导入数据库&; unlink(&./backup/&.$fname);}&&
else $msgs[]=&本地备份文件导入数据库失败&;&&
else ($msgs[]=&从本地上传备份文件失败&);&&
show_msg($msgs);&&
/****本地恢复结束*****/}/****************************************************/&
/****************************主程序结束*/}/**********************************/&
/*************************剩余分卷备份恢复**********************************/&
if(!$_POST['act']&&$_SESSION['data_file'])&&
$filename=&./backup/&.$_SESSION['data_file'];&&
if(import($filename)) $msgs[]=&备份文件&.$_SESSION['data_file'].&成功导入数据库&;&&
else {$msgs[]=&备份文件&.$_SESSION['data_file'].&导入失败&;show_msg($msgs);pageend();}&&
$voltmp=explode(&_v&,$_SESSION['data_file']);&&
$volname=$voltmp[0];&&
$volnum=explode(&.sq&,$voltmp[1]);&&
$volnum=intval($volnum[0])+1;&&
$tmpfile=$volname.&_v&.$volnum.&.sql&;&&
if(file_exists(&./backup/&.$tmpfile))&&
&&& $msgs[]=&程序将在3秒钟后自动开始导入此分卷备份的下一部份:文件&.$tmpfile.&,请勿手动中止程序的运行,以免数据库结构受损&;&&
&&& $_SESSION['data_file']=$&&
&&& show_msg($msgs);&&
&&& sleep(3);&&
&&& echo &&mce:script language='javascript'&&!--&&
&&& echo &location='restore.php';&;&&&
&&& echo &&&
// --&&/mce:script&&;&&&
&&& $msgs[]=&此分卷备份全部导入成功&;&&
&&& unset($_SESSION['data_file']);&&
&&& show_msg($msgs);&&
/**********************剩余分卷备份恢复结束*******************************/&
function import($fname)&&
{global $d;&&
$sqls=file($fname);&&
foreach($sqls as $sql)&&
str_replace(&/r&,&&,$sql);&&
str_replace(&/n&,&&,$sql);&&
if(!$d-&query(trim($sql)))&&
function show_msg($msgs)&&
$title=&提示:&;&&
echo &&table width='100%' border='1'&&& cellpadding='0' cellspacing='1'&&;&&
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()&&
session_start();
global $mysqlhost, $mysqluser, $mysqlpwd, $
$mysqlhost=&localhost:3306&; //host name
$mysqluser=&root&;&&&&&&&&&&&&&&& //login name
$mysqlpwd=&zgqyb&;&&&&&&&&&&&&&&& //password
$mysqldb=&test&;&&&&&&&&& //name of database
include(&mydb.php&);
$d=new db($mysqlhost,$mysqluser,$mysqlpwd,$mysqldb);
/******界面*/if(!$_POST['act']&&!$_SESSION['data_file']){/**********************/
$msgs[]=&本功能在恢复备份数据的同时,将全部覆盖原有数据,请确定是否需要恢复,以免造成数据损失&;
$msgs[]=&数据恢复功能只能恢复由dShop导出的数据文件,其他软件导出格式可能无法识别&;
$msgs[]=&从本地恢复数据需要服务器支持文件上传并保证数据尺寸小于允许上传的上限,否则只能使用从服务器恢复&;
$msgs[]=&如果您使用了分卷备份,只需手工导入文件卷1,其他数据文件会由系统自动导入&;
show_msg($msgs);
&form action=&& method=&post& enctype=&multipart/form-data& name=&restore.php&&
&table width=&91%& border=&0& cellpadding=&0& cellspacing=&1&&
&tr align=&center& class=&header&&&td colspan=&2& align=&center&&数据恢复&/td&&/tr&
&tr&&td width=&33%&&&input type=&radio& name=&restorefrom& value=&server& checked&
从服务器文件恢复 &/td&&td width=&67%&&&select name=&serverfile&&
&&&&& &option value=&&&-请选择-&/option&
$handle=opendir('./backup');
while ($file = readdir($handle)) {
&&&&& if(eregi(&^[0-9]{8,8}([0-9a-z_]+)(/.sql)$&,$file)) echo &&option value='$file'&$file&/option&&;}
closedir($handle);
&&& &/select& &/td&&/tr&
&tr&&td&&input type=&radio& name=&restorefrom& value=&localpc&&&&&&&&&& 从本地文件恢复&/td&
&td&&input type=&hidden& name=&MAX_FILE_SIZE& value=&1500000&&&input type=&file& name=&myfile&&&/td&&/tr&
&tr&&td colspan=&2& align=&center&& &input type=&submit& name=&act& value=&恢复&&&/td&&&& &/tr&&/table&&/form&
&?/**************************界面结束*/}/*************************************/
/****************************主程序*/if($_POST['act']==&恢复&){/**************/
/***************服务器恢复*/if($_POST['restorefrom']==&server&){/**************/
if(!$_POST['serverfile'])
{$msgs[]=&您选择从服务器文件恢复备份,但没有指定备份文件&;
&&& show_msg($msgs); pageend(); }
if(!eregi(&_v[0-9]+&,$_POST['serverfile']))
{$filename=&./backup/&.$_POST['serverfile'];
if(import($filename)) $msgs[]=&备份文件&.$_POST['serverfile'].&成功导入数据库&;
else $msgs[]=&备份文件&.$_POST['serverfile'].&导入失败&;
show_msg($msgs); pageend();&
$filename=&./backup/&.$_POST['serverfile'];
if(import($filename)) $msgs[]=&备份文件&.$_POST['serverfile'].&成功导入数据库&;
else {$msgs[]=&备份文件&.$_POST['serverfile'].&导入失败&;show_msg($msgs);pageend();}
$voltmp=explode(&_v&,$_POST['serverfile']);
$volname=$voltmp[0];
$volnum=explode(&.sq&,$voltmp[1]);
$volnum=intval($volnum[0])+1;
$tmpfile=$volname.&_v&.$volnum.&.sql&;
if(file_exists(&./backup/&.$tmpfile))
&&& $msgs[]=&程序将在3秒钟后自动开始导入此分卷备份的下一部份:文件&.$tmpfile.&,请勿手动中止程序的运行,以免数据库结构受损&;
&&& $_SESSION['data_file']=$
&&& show_msg($msgs);
&&& sleep(3);
&&& echo &&mce:script language='javascript'&&!--
&&& echo &location='restore.php';&;
&&& echo &
// --&&/mce:script&&;
&&& $msgs[]=&此分卷备份全部导入成功&;
&&& show_msg($msgs);
/**************服务器恢复结束*/}/********************************************/
/*****************本地恢复*/if($_POST['restorefrom']==&localpc&){/**************/
switch ($_FILES['myfile']['error'])
$msgs[]=&您上传的文件大于服务器限定值,上传未成功&;
$msgs[]=&未能从本地完整上传备份文件&;
$msgs[]=&从本地上传备份文件失败&;
&&&&& case 0:
if($msgs){show_msg($msgs);pageend();}
$fname=date(&Ymd&,time()).&_&.sjs(5).&.sql&;
if (is_uploaded_file($_FILES['myfile']['tmp_name'])) {
&&&&& copy($_FILES['myfile']['tmp_name'], &./backup/&.$fname);}
if (file_exists(&./backup/&.$fname))
$msgs[]=&本地备份文件上传成功&;
if(import(&./backup/&.$fname)) {$msgs[]=&本地备份文件成功导入数据库&; unlink(&./backup/&.$fname);}
else $msgs[]=&本地备份文件导入数据库失败&;
else ($msgs[]=&从本地上传备份文件失败&);
show_msg($msgs);
/****本地恢复结束*****/}/****************************************************/
/****************************主程序结束*/}/**********************************/
/*************************剩余分卷备份恢复**********************************/
if(!$_POST['act']&&$_SESSION['data_file'])
$filename=&./backup/&.$_SESSION['data_file'];
if(import($filename)) $msgs[]=&备份文件&.$_SESSION['data_file'].&成功导入数据库&;
else {$msgs[]=&备份文件&.$_SESSION['data_file'].&导入失败&;show_msg($msgs);pageend();}
$voltmp=explode(&_v&,$_SESSION['data_file']);
$volname=$voltmp[0];
$volnum=explode(&.sq&,$voltmp[1]);
$volnum=intval($volnum[0])+1;
$tmpfile=$volname.&_v&.$volnum.&.sql&;
if(file_exists(&./backup/&.$tmpfile))
&&& $msgs[]=&程序将在3秒钟后自动开始导入此分卷备份的下一部份:文件&.$tmpfile.&,请勿手动中止程序的运行,以免数据库结构受损&;
&&& $_SESSION['data_file']=$
&&& show_msg($msgs);
&&& sleep(3);
&&& echo &&mce:script language='javascript'&&!--
&&& echo &location='restore.php';&;
&&& echo &
// --&&/mce:script&&;
&&& $msgs[]=&此分卷备份全部导入成功&;
&&& unset($_SESSION['data_file']);
&&& show_msg($msgs);
/**********************剩余分卷备份恢复结束*******************************/
function import($fname)
{global $d;
$sqls=file($fname);
foreach($sqls as $sql)
str_replace(&/r&,&&,$sql);
str_replace(&/n&,&&,$sql);
if(!$d-&query(trim($sql)))
function show_msg($msgs)
$title=&提示:&;
echo &&table width='100%' border='1'&&& cellpadding='0' cellspacing='1'&&;
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()
数据库连接类mydb.php
view plaincopy to clipboardprint?
class db{&&
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-&}&&
function query($sql)&&
{if($this-&sqlid=mysql_query($sql,$this-&linkid)) return $this-&&&
&&& $this-&err_report($sql,mysql_error);&&
function nr($sql_id=&&)&&
{if(!$sql_id) $sql_id=$this-&&&
return mysql_num_rows($sql_id);}&&
function nf($sql_id=&&)&&
{if(!$sql_id) $sql_id=$this-&&&
return mysql_num_fields($sql_id);}&&
function nextrecord($sql_id=&&)&&
{if(!$sql_id) $sql_id=$this-&&&
if($this-&record=mysql_fetch_array($sql_id))&&& return $this-&&&
function f($name)&&
if($this-&record[$name]) return $this-&record[$name];&&
function close() {mysql_close($this-&linkid);}&&
function lock($tblname,$op=&WRITE&)&&
{if(mysql_query(&lock tables &.$tblname.& &.$op))}&&
function unlock()&&
{if(mysql_query(&unlock tables&))}&&
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 &错误信息:&.$&&
/****************************************类结束***************************/&
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-&}
function query($sql)
{if($this-&sqlid=mysql_query($sql,$this-&linkid)) return $this-&
&&& $this-&err_report($sql,mysql_error);
function nr($sql_id=&&)
{if(!$sql_id) $sql_id=$this-&
return mysql_num_rows($sql_id);}
function nf($sql_id=&&)
{if(!$sql_id) $sql_id=$this-&
return mysql_num_fields($sql_id);}
function nextrecord($sql_id=&&)
{if(!$sql_id) $sql_id=$this-&
if($this-&record=mysql_fetch_array($sql_id))&&& return $this-&
function f($name)
if($this-&record[$name]) return $this-&record[$name];
function close() {mysql_close($this-&linkid);}
function lock($tblname,$op=&WRITE&)
{if(mysql_query(&lock tables &.$tblname.& &.$op))}
function unlock()
{if(mysql_query(&unlock tables&))}
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 &错误信息:&.$
/****************************************类结束***************************/
本文来自CSDN博客,转载请标明出处:
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:215318次
积分:4724
积分:4724
排名:第5571名
原创:171篇
转载:585篇
评论:80条

我要回帖

更多关于 db2数据库备份还原 的文章

 

随机推荐