50分,如果不够在加,求MYSQL数据库-数据和数据库结构备份函数 http://www.phome.net/empire/EmpireNews/n/2004/11-01/21335.html这个软件你看看。还行。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 mysql_front 比较好 不会超时,也不会文件大小限制,还有一种就是直接copy目录 可以啊,页面程序调用mysqldump导成tar.gz的然后下载。 谢谢jxflll(峰):1.1版已发布.下载地址:http://www.phome.net/empire/EmpireNews/n/2004/12-31/21343.htmlto ziyou_jo(子游) :点击"直接备份到本地(备份到服务器还行.不然您可以当超级黑客了)" 或者你把导出的数据生成EXCEL文件,然后下载到本地了 自己整理一下,每个人用的方法也不同.function sqldumptable($table, $startfrom = 0, $currsize = 0) { global $db, $multivol, $sizelimit, $startrow; $offset = 64; if(!$startfrom) { $tabledump = "DROP TABLE IF EXISTS $table;\n"; $createtable = $db->query("SHOW CREATE TABLE $table"); $create = $db->fetch_row($createtable); $tabledump .= $create[1].";\n\n"; $tabledump .= "CREATE TABLE $table (\n"; $firstfield = 1; $fields = $db->query("SHOW FIELDS FROM $table"); while ($field = $db->fetch_array($fields)) { if (!$firstfield) { $tabledump .= ",\n"; } else { $firstfield = 0; } $tabledump .= "\t$field[Field] $field[Type]"; if ($field[Null] != "YES") { $tabledump .= " NOT NULL"; } if (!empty($field["Default"])) { $tabledump .= " default '$field[Default]'"; } if ($field[Extra] != "") { $tabledump .= " $field[Extra]"; } } $db->free_result($fields); $keys = $db->query("SHOW KEYS FROM $table"); while ($key = $db->fetch_array($keys)) { $kname = $key['Key_name']; if ($kname != "PRIMARY" and $key['Non_unique'] == 0) { $kname="UNIQUE|$kname"; } if(!is_array($index[$kname])) { $index[$kname] = array(); } $index[$kname][] = $key['Column_name']; } $db->free_result($keys); while(list($kname, $columns) = @each($index)){ $tabledump .= ",\n"; $colnames = implode($columns, ","); if($kname == "PRIMARY"){ $tabledump .= "\tPRIMARY KEY ($colnames)"; } else { if (substr($kname,0,6) == "UNIQUE") { $kname = substr($kname,7); } $tabledump .= "\tKEY $kname ($colnames)"; } } $tabledump .= "\n);\n\n"; } $tabledumped = 0; $numrows = $offset; while(($multivol && $currsize + strlen($tabledump) < $sizelimit * 1000 && $numrows == $offset) || (!$multivol && !$tabledumped)) { $tabledumped = 1; if($multivol) { $limitadd = "LIMIT $startfrom, $offset"; $startfrom += $offset; } $rows = $db->query("SELECT * FROM $table $limitadd"); $numfields = $db->num_fields($rows); $numrows = $db->num_rows($rows); while ($row = $db->fetch_row($rows)) { $comma = ""; $tabledump .= "INSERT INTO $table VALUES("; for($i = 0; $i < $numfields; $i++) { $tabledump .= $comma."'".mysql_escape_string($row[$i])."'"; $comma = ","; } $tabledump .= ");\n"; } } $startrow = $startfrom; $tabledump .= "\n"; return $tabledump;} 注意:别忘记了结贴!<HTML><HEAD><TITLE>数据库操作</TITLE><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></HEAD><BODY><form method="post" name=myform><%if action="restore" then%><INPUT TYPE="hidden" name="action" value="restore">准备恢复数据库<%elseif action="backup" then%><INPUT TYPE="hidden" name="action" value="backup">准备备份数据库<%else%>选择操作:<INPUT TYPE="radio" name="action" id="act_backup" value="backup"><label for=act_backup>备份</label> <INPUT TYPE="radio" name="action" id="act_restore" value="restore"><label for=act_restore>恢复</label><%end if%><br/>数据库名:<INPUT TYPE="text" name="databasename" value="oa119db">请选择要备份的数据库名称<br/>文件路径:<INPUT TYPE="text" name="bak_file" value="oa119db<%=date()%>.dat">(备份或恢复的文件路径)<br/><input type="submit" value="确定"></form><%dim sqlserver,sqlname,sqlpassword,sqlLoginTimeout,databasename,bak_file,actsqlserver = "localhost"'sql服务器sqlname = "sa"'用户名sqlpassword = ""'密码sqlLoginTimeout = 30'登陆超时databasename = trim(request("databasename"))bak_file = trim(request("bak_file"))bak_file = Server.MapPath("BackupDataBase/"&bak_file)act = lcase(request("action"))if databasename = "" thenresponse.write "请输入要备份的数据库名称"elseif act = "backup" thenSet srv = Server.CreateObject("SQLDMO.SQLServer")srv.LoginTimeout= sqlLoginTimeoutsrv.Connect sqlserver,sqlname, sqlpasswordSet bak= Server.CreateObject("SQLDMO.Backup")bak.Database= databasenamebak.Devices= Filesbak.Files= bak_filebak.Action= 0bak.Initialize= 1'bak.ReplaceDatabase= Truebak.SQLBackup srvif err.number>0 thenresponse.write err.number&"<font color=red><br/>"response.write err.description&"</font>"end ifResponse.write "<font color=green>备份成功!</font>"srv.disconnectSet srv = nothing Set bak = nothing elseif act = "restore" then'恢复时要在没有使用数据库时进行!Set srv=Server.CreateObject("SQLDMO.SQLServer")srv.LoginTimeout= sqlLoginTimeoutsrv.Connect sqlserver,sqlname, sqlpasswordSet rest= Server.CreateObject("SQLDMO.Restore")rest.Action= 0 ' full db restorerest.Database= databasenamerest.Devices= Filesrest.Files= bak_filerest.ReplaceDatabase= True 'Force restore over existing databaseif err.number>0 thenresponse.write err.number&"<font color=red><br/>"response.write err.description&"</font>"end ifrest.SQLRestore srvResponse.write "<font color=green>恢复成功!</font>"srv.disconnectSet srv = nothingSet rest = nothingelseResponse.write "<font color=red>没有选择操作</font>"end ifend if%></BODY></HTML> 求一个简单的正则表达式 php 调用命令行问题 PHP openssl验证签名的问题 初学,请多关照!用php怎样实现数据库中的一组数据与另一组数据的比较 求一正则表达式 如何把数据库内的内容以txt文件保存到本地? php如何读取超级终端数据? PHP错误提示信息没有了. 求助,很奇怪的session问题!! 一个诡异的重复写入问题 PHP如何进行这种代数计算啊?有哪位朋友知道? 下拉框选择多语言问题?
1.1版已发布.下载地址:http://www.phome.net/empire/EmpireNews/n/2004/12-31/21343.html
to ziyou_jo(子游) :
点击"直接备份到本地(备份到服务器还行.不然您可以当超级黑客了)"
function sqldumptable($table, $startfrom = 0, $currsize = 0) {
global $db, $multivol, $sizelimit, $startrow; $offset = 64;
if(!$startfrom) {
$tabledump = "DROP TABLE IF EXISTS $table;\n"; $createtable = $db->query("SHOW CREATE TABLE $table");
$create = $db->fetch_row($createtable); $tabledump .= $create[1].";\n\n"; $tabledump .= "CREATE TABLE $table (\n"; $firstfield = 1; $fields = $db->query("SHOW FIELDS FROM $table");
while ($field = $db->fetch_array($fields)) {
if (!$firstfield) {
$tabledump .= ",\n";
} else {
$firstfield = 0;
}
$tabledump .= "\t$field[Field] $field[Type]"; if ($field[Null] != "YES") {
$tabledump .= " NOT NULL";
} if (!empty($field["Default"])) {
$tabledump .= " default '$field[Default]'";
}
if ($field[Extra] != "") {
$tabledump .= " $field[Extra]";
}
} $db->free_result($fields); $keys = $db->query("SHOW KEYS FROM $table");
while ($key = $db->fetch_array($keys)) {
$kname = $key['Key_name'];
if ($kname != "PRIMARY" and $key['Non_unique'] == 0) {
$kname="UNIQUE|$kname";
}
if(!is_array($index[$kname])) {
$index[$kname] = array();
}
$index[$kname][] = $key['Column_name'];
} $db->free_result($keys); while(list($kname, $columns) = @each($index)){
$tabledump .= ",\n";
$colnames = implode($columns, ","); if($kname == "PRIMARY"){
$tabledump .= "\tPRIMARY KEY ($colnames)";
} else {
if (substr($kname,0,6) == "UNIQUE") {
$kname = substr($kname,7);
} $tabledump .= "\tKEY $kname ($colnames)"; }
} $tabledump .= "\n);\n\n"; } $tabledumped = 0;
$numrows = $offset;
while(($multivol && $currsize + strlen($tabledump) < $sizelimit * 1000 && $numrows == $offset) || (!$multivol && !$tabledumped)) {
$tabledumped = 1;
if($multivol) {
$limitadd = "LIMIT $startfrom, $offset";
$startfrom += $offset;
} $rows = $db->query("SELECT * FROM $table $limitadd");
$numfields = $db->num_fields($rows);
$numrows = $db->num_rows($rows);
while ($row = $db->fetch_row($rows)) {
$comma = "";
$tabledump .= "INSERT INTO $table VALUES(";
for($i = 0; $i < $numfields; $i++) {
$tabledump .= $comma."'".mysql_escape_string($row[$i])."'";
$comma = ",";
}
$tabledump .= ");\n";
}
} $startrow = $startfrom;
$tabledump .= "\n";
return $tabledump;
}
<HTML>
<HEAD>
<TITLE>数据库操作</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</HEAD><BODY>
<form method="post" name=myform>
<%if action="restore" then%><INPUT TYPE="hidden" name="action" value="restore">准备恢复数据库
<%elseif action="backup" then%><INPUT TYPE="hidden" name="action" value="backup">准备备份数据库<%else%>
选择操作:
<INPUT TYPE="radio" name="action" id="act_backup" value="backup"><label for=act_backup>备份</label>
<INPUT TYPE="radio" name="action" id="act_restore" value="restore"><label for=act_restore>恢复</label><%end if%>
<br/>数据库名:<INPUT TYPE="text" name="databasename" value="oa119db">
请选择要备份的数据库名称<br/>文件路径:<INPUT TYPE="text" name="bak_file" value="oa119db<%=date()%>.dat">(备份或恢复的文件路径)<br/>
<input type="submit" value="确定">
</form>
<%dim sqlserver,sqlname,sqlpassword,sqlLoginTimeout,databasename,bak_file,act
sqlserver = "localhost"'sql服务器
sqlname = "sa"'用户名
sqlpassword = ""'密码
sqlLoginTimeout = 30'登陆超时
databasename = trim(request("databasename"))
bak_file = trim(request("bak_file"))
bak_file = Server.MapPath("BackupDataBase/"&bak_file)
act = lcase(request("action"))if databasename = "" then
response.write "请输入要备份的数据库名称"
else
if act = "backup" then
Set srv = Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout= sqlLoginTimeout
srv.Connect sqlserver,sqlname, sqlpassword
Set bak= Server.CreateObject("SQLDMO.Backup")
bak.Database= databasename
bak.Devices= Files
bak.Files= bak_file
bak.Action= 0
bak.Initialize= 1
'bak.ReplaceDatabase= True
bak.SQLBackup srv
if err.number>0 then
response.write err.number&"<font color=red><br/>"
response.write err.description&"</font>"
end if
Response.write "<font color=green>备份成功!</font>"
srv.disconnect
Set srv = nothing
Set bak = nothing
elseif act = "restore" then
'恢复时要在没有使用数据库时进行!
Set srv=Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout= sqlLoginTimeout
srv.Connect sqlserver,sqlname, sqlpassword
Set rest= Server.CreateObject("SQLDMO.Restore")
rest.Action= 0 ' full db restore
rest.Database= databasename
rest.Devices= Files
rest.Files= bak_file
rest.ReplaceDatabase= True 'Force restore over existing database
if err.number>0 then
response.write err.number&"<font color=red><br/>"
response.write err.description&"</font>"
end if
rest.SQLRestore srvResponse.write "<font color=green>恢复成功!</font>"
srv.disconnect
Set srv = nothing
Set rest = nothing
else
Response.write "<font color=red>没有选择操作</font>"
end if
end if
%>
</BODY>
</HTML>