/*Database Backup:NOTICE:此類要添加資料庫連接才能正常工作*/ Class Back_up_databaseextendsdbstuff{ //類開始 var $HOST; var $USERNAME; var $PASSWORD; var $DATABASE; function Back_up_database($host,$username,$password,$database){ //初始化資料庫連接 $this->HOST=$host; $this->USERNAME=$username; $this->ASSWORD=$password; $this->DATABASE=$database; $Connection=$this->connect($this->HOST,$this->USERNAME,$this->ASSWORD,$this->DATABASE,$pconnect); $this->Connection=$Connection; } //取得資料庫中的表 function get_table_name($database){ $this->Connection; $result=mysql_list_tables($database); $i=0; while($i$tb_name[$i]=mysql_tablename($result,$i); $table_name.=$tb_name[$i].","; $i++; } $this->table_name=substr($table_name,0,-1); return$this->table_name; } //取得每個表中的FIELDS和屬性並產生CREATETABLE語句 function get_table_fields($table_name){ $this->Connection; $createtable=dbstuff::query("SHOWCREATETABLE$table_name"); $create=dbstuff::fetch_row($createtable); $tabledump.="DROPTABLEIFEXISTS$table_name;\n"; $tabledump.=$create[1].";\n\n"; $this->$table_name=$tabledump; return$this->$table_name; } //取得表中的資料並產生ISERTINTO語句 function get_insert($table_insert_name){ $this->Connection; $rows=dbstuff::query("SELECT*FROM$table_insert_name"); $numfields=dbstuff::num_fields($rows); $numrows=dbstuff::num_rows($rows); while($row=dbstuff::fetch_row($rows)){ $comma=""; $tabledump.="INSERTINTO$table_insert_nameVALUES("; for($i=0;$i<$numfields;$i++){ $tabledump.=$comma."'".mysql_escape_string($row[$i])."'"; $comma=","; } $tabledump.=");\n"; } $this->tabledump=$tabledump; return$this->tabledump; } //擷取所有資料並串連成新的字串並將它寫入檔案中.sql function get_string($database_name,$file_path_name){ $time=date("Y-m-dH:j"); $date_time=date("YmdHis"); $file_path_name=$file_path_name.$date_time.".sql"; $version="Antsent_Web_StudioDatabaseBackUpV1.01"; $idstring='#Identify:'.base64_encode("$time,$version")."\n"; $head_info="$idstring". "#\n". "#Antsnet_Web!TheBasicClassOfBackUpDataBase\n". "#Version:AntsnetWeb!$version\n". "#Timetime\n". "#Type:ClassOfBackUpDataBase\n". "#Antsnet_Web_Studio!Home:http://www.bKjia.c0m \n". "#PleasevisitourwebsitefornewestinfomationaboutAntsnet_Web_Studio!\n". "#--------------------------------------------------------\n\n\n"; $table_name=$this->get_table_name($database_name); $array_table=explode(",",$table_name); for($i=0;$i$table_string.=$this->get_table_fields($array_table[$i]); $table_insert.=$this->get_insert($array_table[$i]); } $count_string=$head_info.$table_string.$table_insert; //return$count_string; $write_status=$this->write_file($file_path_name,$count_string); return$write_status; } //寫入一個檔案 function write_file($file_path,$file_contents){ if(@!$fp=fopen($file_path,'w')){ $status="ThisFileCouldNotOpenOrRead."; }else{ flock($fp,3); fwrite($fp,$file_contents); fclose($fp); window.google_render_ad(); ?> |