SHOW:
|
|
- or go back to the newest paste.
1 | <?php | |
2 | ||
3 | backup_tables('host','username','password'); | |
4 | ||
5 | ||
6 | /* backup the db OR just a table */ | |
7 | function backup_tables($host,$user,$pass,$name,$tables = '*') | |
8 | { | |
9 | ||
10 | $link = mysql_connect($host,$user,$pass); | |
11 | mysql_select_db($name,$link); | |
12 | ||
13 | //get all of the tables | |
14 | if($tables == '*') | |
15 | { | |
16 | $tables = array(); | |
17 | $result = mysql_query('SHOW DATABASES'); | |
18 | while($arr = mysql_fetch_array($result)) | |
19 | { | |
20 | - | if($arr[0] == 'information_schema' || $arr[0] == 'mysql') |
20 | + | |
21 | - | continue; |
21 | + | |
22 | { | |
23 | $tables[$arr[0]][] = $row[0]; | |
24 | } | |
25 | } | |
26 | } | |
27 | else | |
28 | { | |
29 | $tables = is_array($tables) ? $tables : explode(',',$tables); | |
30 | } | |
31 | ||
32 | /*A little middle check, to see if all is saved in the right way*/ | |
33 | /*$k=0; | |
34 | foreach($tables as $database => $tab){ | |
35 | echo "<p style='font-weight: bold;text-transform: uppercase;'>$database</p><br/>"; | |
36 | print_r($tab); | |
37 | echo '<br/>'; | |
38 | }*/ | |
39 | ||
40 | //cycle through | |
41 | mkdir('backup_'.date('Y-m-d')); | |
42 | foreach($tables as $database => $tab){ | |
43 | $return = ''; | |
44 | foreach($tab as $table){ | |
45 | $result = mysql_query('SELECT * FROM `'.$database.'`.`'.$table.'`'); | |
46 | $num_fields = mysql_num_fields($result); | |
47 | ||
48 | //$return.= 'DROP TABLE `'.$database.'`.`'.$table.'`;'; | |
49 | $row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE `'.$database.'`.`'.$table.'`')); | |
50 | $return.= "\n\n".$row2[1].";\n\n"; | |
51 | ||
52 | for ($i = 0; $i < $num_fields; $i++) | |
53 | { | |
54 | while($row = mysql_fetch_row($result)) | |
55 | { | |
56 | $return.= 'INSERT INTO `'.$database.'`.`'.$table.'` VALUES('; | |
57 | for($j=0; $j<$num_fields; $j++) | |
58 | { | |
59 | $row[$j] = addslashes($row[$j]); | |
60 | $row[$j] = ereg_replace("\n","\\n",$row[$j]); | |
61 | if($row[$j] == '') | |
62 | $val = "NULL"; | |
63 | else | |
64 | $val = $row[$j]; | |
65 | if (isset($row[$j])) { $return.= '"'.$val.'"' ; } else { $return.= 'NULL'; } | |
66 | if ($j<($num_fields-1)) { $return.= ','; } | |
67 | } | |
68 | $return.= ");\n"; | |
69 | } | |
70 | } | |
71 | $return.="\n\n\n"; | |
72 | } | |
73 | $handle = fopen('backup_'.date('Y-m-d').'/'.$database.'.sql','w+'); | |
74 | fwrite($handle,$return); | |
75 | fclose($handle); | |
76 | } | |
77 | ||
78 | //save file | |
79 | } | |
80 | ?> |