Distrubtor
Grünschnabel
Hi,
Ich habe folgendes Problem:
Ich schreibe gerade ein Script mit dem es möglich sein soll die Datenbank zu Sichern und später bei bedarf wieder herzustellen. Der Dump wird dabei in eine Datei geschrieben d.h also um ihn wiederherzustellen muss ich diese Datei öffnen... Nun habe ich aber das Problem das Wenn ich es Zeile für Zeile Versuche ein MySQL error kommt was ja auch logisch ist da die MySQL Befehle sich über mehrer Zeilen erstrecken, aber wenn ich z.B Versuche die Zeilenumbrüche zu entfernen funktioniert es auch nicht!
Mein Code sieht zur Zeit so aus:
Der Vollständige MySQL Dump ist im Ahnang. Kann mir jemand weiterhelfen?
Ich habe folgendes Problem:
Ich schreibe gerade ein Script mit dem es möglich sein soll die Datenbank zu Sichern und später bei bedarf wieder herzustellen. Der Dump wird dabei in eine Datei geschrieben d.h also um ihn wiederherzustellen muss ich diese Datei öffnen... Nun habe ich aber das Problem das Wenn ich es Zeile für Zeile Versuche ein MySQL error kommt was ja auch logisch ist da die MySQL Befehle sich über mehrer Zeilen erstrecken, aber wenn ich z.B Versuche die Zeilenumbrüche zu entfernen funktioniert es auch nicht!
Mein Code sieht zur Zeit so aus:
PHP:
if($_GET[action]=="restoredb"&&isset($_GET[filename])){
$result=mysql_list_tables($sqldb);
while($row=mysql_fetch_row($result)){
mysql_query("DROP Table $row[0]") or die(mysql_error());
}
$sql = file_get_contents ("./backup/$_GET[filename]");
$sql = preg_replace ("%/\*(.*)\*/%Us", '', $sql);
$sql = preg_replace ("%^--(.*)\n%mU", '', $sql);
$sql = preg_replace ("%^$\n%mU", '', $sql);
if (version_compare (phpversion(), "4.3.0", ">=") == 1){
mysql_real_escape_string($sql); // ab php 4.3.0
}
else{
mysql_escape_string($sql);
}
$sql = explode (";", $sql);
foreach ($sql as $q){
if ($q != '' && $q != ' '){
mysqli_multi_query($q) or die (mysql_error());
echo nl2br($q)."\n<hr />\n";
}
}
echo "<h2>query wurde erfolgreich ausgeführt!</h2>";
}
Der Vollständige MySQL Dump ist im Ahnang. Kann mir jemand weiterhelfen?