- //无论客户端是否关闭浏览器,下面的代码都将得到执行。
- ignore_user_abort(true);set_time_limit(0);
- //function write_txt(){
- ini_set("max_execution_time", "180");//避免数据量过大,导出不全的情况出现。
- $host="127.0.0.1";//数据库地址
- $dbname="apiadmin";//这里配置数据库名
- $username="root";//用户名
- $passw="root";//这里配置密码
- $filename=date("Y-m-d_H-i-s")."-".$dbname.".sql";
- header("Content-disposition:filename=".$filename);//所保存的文件名
- header("Content-type:application/octetstream");
- header("Pragma:no-cache");
- header("Expires:0");
- //备份数据
- $i = 0;
- $crlf="\r\n";
- global $dbconn;
- $dbconn = mysql_connect($host,$username,$passw);//数据库主机,用户名,密码
- $db = mysql_select_db($dbname,$dbconn);
- mysql_query("SET NAMES 'utf8'");
- $tables =mysql_list_tables($dbname,$dbconn);
- $num_tables = @mysql_numrows($tables);
- print "-- filename=".$filename;
- while($i < $num_tables)
- {
- $table=mysql_tablename($tables,$i);
- print $crlf;
- echo get_table_structure($dbname, $table, $crlf).";$crlf$crlf";
- //echo get_table_def($dbname, $table, $crlf).";$crlf$crlf";
- echo get_table_content($dbname, $table, $crlf);
- $i++;
- }
- //}
- function get_table_structure($db,$table,$crlf)
- {
- global $drop;
- $schema_create = "";
- if(!empty($drop)){ $schema_create .= "DROP TABLE IF EXISTS `$table`;$crlf";}
- $result =mysql_db_query($db, "SHOW CREATE TABLE $table");
- $row=mysql_fetch_array($result);
- $schema_create .= $crlf."-- ".$row[0].$crlf;
- $schema_create .= $row[1].$crlf;
- Return $schema_create;
- }
- //获得表内容
- function get_table_content($db, $table, $crlf)
- {
- $schema_create = "";
- $temp = "";
- $result = mysql_db_query($db, "SELECT * FROM $table");
- $i = 0;
- while($row = mysql_fetch_row($result))
- {
- $schema_insert = "INSERT INTO `$table` VALUES (";
- for($j=0; $j<mysql_num_fields($result);$j++)
- {
- if(!isset($row[$j]))
- $schema_insert .= " NULL,";
- elseif($row[$j] != "")
- $schema_insert .= " '".addslashes($row[$j])."',";
- else
- $schema_insert .= " '',";
- }
- $schema_insert = ereg_replace(",$", "",$schema_insert);
- $schema_insert .= ");$crlf";
- $temp = $temp.$schema_insert ;
- $i++;
- }
- return $temp;
- }
- //usleep适用于php5.0以上,定时
- function do_cron(){usleep(1);write_txt();}
- while(1){do_cron();}