09. august 2008 - 14:42
Der er
3 kommentarer og 1 løsning
Lave jævnligt backup
Hejsa! Denne hører måske også under PHP, men nu prøver vi her ;o) Jeg søger en funktion (måske et script), der kan tage en backup i form af sql.sql e.l. Hvis der findes et PHP script kan jeg bare få scriptet besøgt vha. cronjob
Annonceindlæg fra Conscia
09. august 2008 - 16:26
#2
Fandt selv: <? $backup_structure=TRUE; $backup_data=TRUE; $empty_table=FALSE; $drop_table=TRUE; function write2file($filename,$content){ $handle=fopen($filename, 'w'); // Write $somecontent to our opened file. fwrite($handle, $content); //echo "Ba"; fclose($handle); //echo "$filename has been created"; } function backupstructure($tablename){ $ress = mysql_query("describe `".$tablename."`"); $a.="CREATE TABLE `".$tablename."` (\n"; while ($rows = mysql_fetch_row($ress)) { //foreach ($rows as $rowval) if ($rows) { // echo $rowval .' | '; if(strlen($rows[4])==0){ $row4=""; }else{ $row4="default '$rows[4]'"; } if($rows[3]=="PRI"){ $primarykey="PRIMARY KEY (`$rows[0]`)"; } $a .="`$rows[0]` $rows[1] $rows[5] $row4,\n"; } } $a.=$primarykey."\n);"; return $a; } function backup($table){ global $con; $a =""; $sql= ("select * from $table"); $result = mysql_query($sql) or die("SQL ERROR:<hr>".$sql); while($rs = mysql_fetch_object($result)) { $b = ("insert into `$table` values ("); foreach($rs as $tmp1 => $key){ $key=str_replace("\n","<br>",$key); $key=str_replace("\r","<br>",$key); $b.= "'".addslashes($key)."',"; } $a.= substr($b,0,strlen($b)-1).");\n"; } mysql_free_result($result); $a."\n"; return $a; } $con = @mysql_connect('xxxxx', 'xxxxxx', 'xxxxxx') or die("<center><b>Connection Error</b></center>"); $current_database = 'xxxxx'; $trs = mysql_list_tables($current_database,$con); $tables=array(); for($i=0; $i < mysql_num_rows($trs); $i++) { $output.="\n\n-- backup af ".mysql_tablename($trs,$i)."\n\n"; if($empty_table==TRUE){ $output.="TRUNCATE TABLE `".mysql_tablename($trs,$i)."`;\n"; } if($drop_table==TRUE){ $output.="DROP TABLE IF EXISTS `".mysql_tablename($trs,$i)."`;\n"; } if($backup_structure==TRUE){ $output.=backupstructure(mysql_tablename($trs,$i))."\n\n"; } if($backup_data==TRUE){ $output.= backup(mysql_tablename($trs,$i)); } } //echo $output; $filename="backups/db_backup_".date("Y-m-d").".sql"; write2file($filename,$output); ?> Men smid et svar og du skal få point ;o)