MySQL Export über PHP

weedo

Erfahrenes Mitglied
Guten Tag,

ich möchte einen Backup-Export meiner MySQL-Tablle via PHP machen. Die zu speicherne Datei sollte in Form von *.xls, bzw *.xml sein.

Leider habe ich noch nichts derartiges jemals programiert, deshalb fehlt mit ein wenig der Ansatz. Ich habe gehofft, dass mir die Nutzer dieses Forums weiter helfen könnten.

Mit freundlichen Grüßen
weedo
 
Hi

im PHPMyAdmin kannst du unter export sagen wie er dir die daten der tabelle geben soll, dort kannst dann excel auswählen

ansonsten könntest du es allerdings auch als CSV-datei schreiben und dann in excel einlesen, sofern es nicht mehr als 65535 zeilen sind ;-)

sprich alles aus der DB lesen und in ne datei zeilenweise reinhauen, fertig :-)
 
Ich hoffe du hast PHP 5:
PHP:
<?php

	mysql_connect('…', '…', '…');
	mysql_select_db('…');
	$table = '…';

	$dom = new DOMDocument('1.0', 'utf-8');
	$dom_root = $dom->createElement('table');
	$dom_root->setAttribute('name' => $table);

	// Tabellenschema
	$dom_tableSchema = $dom->createElement('schema');
	$query = 'SHOW COLUMNS FROM `'.$table.'`';
	$result = mysql_query($query) or die(mysql_error());
	$columns = array();
	while( $row = mysql_fetch_assoc($result) ) {
		$tmp = $dom->createElement('column');
		foreach( $row as $key => $value ) {
			if( $key == 'Field' ) {
				$columns[] = $value;
			}
			$tmp->appendChild($dom->createElement(strtolower($key), $value));
		}
		$dom_tableSchema->appendChild($tmp);
	}
	$dom_root->appendChild($dom_tableSchema);

	// Tabellendatensätze
	$dom_tableRecords = $dom->createElement('records');
	$query = 'SELECT `'.implode('`, `', $columns).'` FROM `'.$table.'`';
	$result = mysql_query($query) or die(mysql_error());
	while( $row = mysql_fetch_assoc($result) ) {
		$tmp = $dom->createElement('record');
		foreach( $row as $value ) {
			$tmp->appendChild($dom->createElement('value', $value));
		}
		$dom_tableRecords->appendChild($tmp);
	}
	$dom_root->appendChild($dom_tableRecords);

	$dom->appendChild($dom_root);

	if( !headers_sent() ) {
		header('Content-Type: text/xml; charset="utf-8"');
		echo $dom->saveXML();
	}

?>
 
Danke erstmal für die schnelle Hilfe.

Gumbo hat gesagt.:
Ich hoffe du hast PHP 5

Also ich habe PHP 5, nur habe ich gehofft, dass der Rechner, für den ich das Script bauen wollte auch über PHP 5 verfügt.

Leider ist das nicht der Fall und es lässt sich nicht PHP 5 installieren.

Gibt es auch eine Lösung für PHP 4.2.2?
 
Hast du das Skript denn schon mal auf dem Server ausprobiert? Es könnte sein, dass es nur minimal angepasst werden müsste.
 
Ja habe ich.

Das Problem ist die Funktion createelement().


Hier der Fehler, der durch PHP zurückgegeben wird.
Code:
Fatal error: Call to undefined function: createelement() in /home/www_root/knowhow/test/save.php on line 8
 
Ersetze mal alle „camel-case“ geschriebenen Funktionen durch mit Unterschtriche verbundene, also aus „createElement()“ wird somit „create_element()“.
 
Jetzt treten neue fehler auf:

Code:
Warning: create_element(): underlying object missing in /home/www_root/knowhow/test/save.php on line 8

Warning: create_element(): cannot fetch DOM object in /home/www_root/knowhow/test/save.php on line 8
 
Bevor sich hier jemand weitere Gedanken macht:

Ich habe einen anderen weg gefunden, an die Daten zu kommen, die ich benötige. Deshalb brauch ich das Script nichtmehr. Danke an die helfer. Ich denke, dass die Lösung für Php5 durchaus verwendbar ist.

LG weedo
 
Zurück