redarrow Posted September 19, 2008 Share Posted September 19, 2008 HERES A GRATE SOLUTION EVERYONE...................................... <?php backup_tables('localhost','username','password','blog'); /* backup the db OR just a table */ function backup_tables($host,$user,$pass,$name,$tables = '*') { $link = mysql_connect($host,$user,$pass); mysql_select_db($name,$link); //get all of the tables if($tables == '*') { $tables = array(); $result = mysql_query('SHOW TABLES'); while($row = mysql_fetch_row($result)) { $tables[] = $row[0]; } } else { $tables = is_array($tables) ? $tables : explode(',',$tables); } //cycle through foreach($tables as $table) { $result = mysql_query('SELECT * FROM '.$table); $num_fields = mysql_num_fields($result); $return.= 'DROP TABLE '.$table.';'; $row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table)); $return.= "\n\n".$row2[1].";\n\n"; for ($i = 0; $i < $num_fields; $i++) { while($row = mysql_fetch_row($result)) { $return.= 'INSERT INTO '.$table.' VALUES('; for($j=0; $j<$num_fields; $j++) { $row[$j] = addslashes($row[$j]); $row[$j] = ereg_replace("\n","\\n",$row[$j]); if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; } if ($j<($num_fields-1)) { $return.= ','; } } $return.= ");\n"; } } $return.="\n\n\n"; } //save file $handle = fopen('db-backup-'.time().'-'.(md5(implode(',',$tables))).'.sql','w+'); fwrite($handle,$return); fclose($handle); } ?> Link to comment https://forums.phpfreaks.com/topic/124885-backu-your-database/ Share on other sites More sharing options...
DarkWater Posted September 19, 2008 Share Posted September 19, 2008 Or you can use mysqldump. Link to comment https://forums.phpfreaks.com/topic/124885-backu-your-database/#findComment-645302 Share on other sites More sharing options...
Maq Posted September 19, 2008 Share Posted September 19, 2008 Hmm, that's a pretty cool script but isn't it expensive, as in, if you have a big database it will take a lot of time. I think mysqldump would be much quicker. Link to comment https://forums.phpfreaks.com/topic/124885-backu-your-database/#findComment-645354 Share on other sites More sharing options...
Daniel0 Posted September 19, 2008 Share Posted September 19, 2008 No, sorry, it isn't a "grate [sic] solution"... Link to comment https://forums.phpfreaks.com/topic/124885-backu-your-database/#findComment-645394 Share on other sites More sharing options...
JasonLewis Posted September 19, 2008 Share Posted September 19, 2008 Could you also something like: SELECT * INTO OUTFILE `file_name.sql` FROM `table_name` Link to comment https://forums.phpfreaks.com/topic/124885-backu-your-database/#findComment-645418 Share on other sites More sharing options...
keyurshah Posted September 19, 2008 Share Posted September 19, 2008 An even "GRATE-R" solution using mysqldump http://scriptplayground.com/tutorials/php/Backup-Database/ mysqldump the best way to backup database. Link to comment https://forums.phpfreaks.com/topic/124885-backu-your-database/#findComment-645424 Share on other sites More sharing options...
Mchl Posted September 19, 2008 Share Posted September 19, 2008 Or (in MySQL 6.x) BACKUP DATABASE statement. Can't wait for it to become GA Link to comment https://forums.phpfreaks.com/topic/124885-backu-your-database/#findComment-645428 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.