Czy ma ktoś jakiś pomysł? Znalazłem kilka skryptów z backupem ale nie ma tam takich możliwości omijania konkretnych tabel.
tutaj taki skrypt z frazpc.pl
$User = 'login';
$UserPass = 'haslo';
$Name = 'baza';
if($User & $UserPass)
dbDump($User, $Name, $UserPass);
function dbConnect($dbuser, $dbuserpass, $dbname){
$dbHandle = mysql_connect("localhost", $dbuser, $dbuserpass) or die ("Nie można się połączyć.");
mysql_select_db ($dbname, $dbHandle) or die ("Nie można wybrać bazy danych.");
return $dbHandle;
}
function dbDisconnect($dbHandle){
if(! mysql_close($dbHandle))
return False;
else
return True;
}
function dbDump($dbUser, $dbName, $dbUserPass){
$path = "./dump_base_" . date('d-m-y_H-i') . ".sql";
$export = '';
$data = '';
$handle = dbConnect($dbUser, $dbUserPass, $dbName);
$q0 = "SELECT DATABASE()";
$res0 = mysql_query($q0,$handle);
$baza = mysql_fetch_row($res0);
$baza = $baza[0];
$q1 = "SHOW TABLES";
$res1 = mysql_query($q1,$handle);
$export .= "USE $baza;";
while($row = mysql_fetch_row($res1)){
$tabela = $row[0];
$q2 = "SHOW CREATE TABLE ".$tabela;
$res2 = mysql_query($q2,$handle);
if($row2 = mysql_fetch_row($res2)){
$tmp = $row2[1];
$export.= $tmp;
$export.=";";
}
$q3 = "SELECT * FROM $tabela";
$res3 = mysql_query($q3,$handle);
while ($row3 = mysql_fetch_array($res3)){
$data .= "INSERT INTO `".$tabela."` VALUES (";
$ile = mysql_num_fields($res3);
for($i = 0;$i<$ile;$i++){
$tmp = preg_replace("/'/", "\\'", $row3[$i]);
$row3[$i] = $tmp;
$data .= "'".$row3[$i]."'";
if($i < $ile -1)
$data .= ", ";
}
$data .= ");\n";
}
}
$export .= $data; // merge all data together
$buf1 = str_replace("ENGINE", "TYPE", $export);
$buf2 = preg_replace("/DEFAULT.CHARSET=.*;/", ";", $buf1);
dbDisconnect($handle);
$file=fopen($path,'wb');
if(!$file)
return False;
$result_end = fwrite($file, $buf2);
fclose($file);
echo "<a href=$path>Plik bazy: $path</>";
return $result_end;
}
z góry dziękuje za podpowiedź
