Wie oxygen schon sagte, soll die Zeile mit dem INSERT in eine Datei geschrieben werden, um diese dann auch wieder importieren zu können. Ein SQL-Dump ist ja nichts anderes als eine Textdatei mit zahllosen INSERT-Befehlen, durch den die gesamten Daten wieder in die Datenbank eingespielt werden.
Schreiben tust du das mit den Datei-Befehlen von PHP. Ich überarbeite den Code mal:
Code: Select all
<?php
// Datei: /home/.../make_dump.php
// MySQL Connect herstellen
$dbconnect = mysql_connect ("localhost", "mysql_user", "mysql_password");
// Daten aus der DB lesen
$res = mysql_query("SELECT * FROM tabelle WHERE bedingung=1");
$row = mysql_fetch_array($res);
mysql_free_result($res);
// String bauen
$string = "INSERT INTO tabelle (x1, x2, x3) VALUES ('".addslashes($row[x1])."', '".addslashes($row[x2])."', '".addslashes($row[x3])."')n";
// Daten in Datei schreiben
$fd = fopen("/home/.../dump.sql", "a");
fwrite($fd, $string);
fclose($fd);
// Ende
mysql_close($dbconnect);
?>
In die Datei wird dann am Ende eine Zeile in der Form "INSERT INTO tabelle (x1, x2, x3) VALUES ('wert1', 'wert2', 'wert3')" geschrieben. Die Zeile wird mit CR abgeschlossen, also steht der Filepointer für die nächste Schreiboperation gleich am Anfang der nächsten Zeile. (Hoffe ich ^^)
Wenn du die Werte nicht am Schluss anhängen willst, sondern immer das Vorhandene überschreiben möchtest, dann benutze bei fopen() nicht den Parameter "a", sondern "w".
Statt /home/.../dump.sql musst du natürlich den absoluten Pfad deiner Zieldatei angeben. :)