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); } ?> Quote 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. Quote 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. Quote 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"... Quote 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` Quote 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. Quote 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 Quote Link to comment https://forums.phpfreaks.com/topic/124885-backu-your-database/#findComment-645428 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.