XML mit MySQL und PHP erstellen

Sobald die Verbindung hergestellt ist, gilt es die aktuelle Datenbank mithilfe der MySQL-Verbindung auszuwählen. Der folgende Code erledigt diese Aufgabe:


Nun kann man eine SQL-Anweisung schreiben, um alle Spalten in $table_name auszuwählen.


Falls notwendig, lassen sich später noch Attribute hinzufügen. Erst einmal kann man die Abfrage jedoch wie folgt ausführen:


Alle MySQL-Funktionen sind übrigens über die PHP.net-Website nachzuschlagen.

XML erstellen und schreiben
Nun ist man so weit, ein neues XML-Dokument zu erstellen. Hierzu gibt es mehrere Möglichkeiten, aber der Ansatz in Listing A dürfte für die meisten Zwecke genügen.

Hier ein kurzer Abriss, was dabei passiert: Die Variable num repräsentiert die Präsenz von Spaltendaten aus der Abfrage, wobei diese mit der MySQL-Funktion mysql_num_rows gezählt werden können. Weiter geht es mit der Ausgabeprozedur für das XML. Die Variable $file enthält einen Zeiger auf das Datei-Objekt, das erzeugt wird, wenn PHP das Dateisystem erfolgreich nach der Datei results.xml durchsucht hat. Wenn results.xml gefunden wurde, wird ein PHP-Dateiobjekt namens file erzeugt und mit Schreibrechten versehen. Nun kann man den Inhalt einer Variablen dorthin ausgeben, und genau das passiert jetzt, denn die Verzeichnis-Berechtigungen sind so eingestellt, dass PHP dies gestattet ist.

Es gilt zu bedenken, dass dies bei einer echten Webanwendung wegen der Sicherheitsrisiken eine ziemlich leichtsinnige Sache ist. Um sicherzustellen, dass die Implementierungen der Konzepte dieses Artikels sicher sind, sollte man den vollständigen Pfad zu einem Verzeichnis angeben, welches die Dateien enthält, die man zum Schreiben öffnen möchte, und dafür sorgen, dass es sich in einem Verzeichnis oberhalb des Web-Wurzelverzeichnisses befindet.

Als nächstes konvertiert die PHP-Funktion mysql_fetch_array die Abfragevariable $result in ein Array und durchläuft dessen Schlüssel in einer Schleife. Wenn pageTitle unter den in der Abfrage zurückgegebenen Spalten war, wird für jede zurückgegebene Spalte etwas XML-formatierter Text in eine Stringvariable $_xml geschrieben.

Man beachte, dass der Operator „.=“, der verwendet wird, um die XML-formatierten Strings als Werte anzuhängen, von $row gelesen wird. Wenn die Schleife abgeschlossen ist, wird der XML-Wurzelknoten in die Variable $_xml geschrieben und darauf dann die ganze Variable mithilfe der PHP-Funktion fwrite in die Datei results.xml.

An dieser Stelle erscheint ein Link auf dem Bildschirm. Man muss sicherstellen, dass dieser Link auf den Pfad zur XML-Datei verweist, denn sonst wird das formatierte XML, das PHP aus der MySQL-Abfrage erzeugt, nicht angezeigt.

Ein Testlauf
Der Code lässt sich einfach testen, indem man ihn in einem Browser ausführt. Falls alles ordnungsgemäß funktioniert, wird man in seinem Verzeichnis eine neue Datei namens results.xml finden. Dies ist die XML-Datei, die vom PHP-Script erstellt wurde. Sie sollte so aussehen:


Nur ein erster Anfang
Der Code aus diesem Artikel könnte als Einzelbaustein in einer umfangreicheren Anwendung eingesetzt werden. Das ist eine bewährte Technik zur Erstellung und Aktualisierung von XML-Dokumenten, aber es ist nicht die einzige Lösung. Es gibt weitere Technologien wie z.B. PEAR, die PHP erweitern und einige interessante Alternativen zu bieten haben.

Themenseiten: Big Data, Datenbank, SQL, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

3 Kommentare zu XML mit MySQL und PHP erstellen

Kommentar hinzufügen
  • Am 15. Februar 2009 um 21:08 von MR_xy

    fehlt der rest
    Und wo ist der rest?

  • Am 3. Juli 2011 um 13:03 von Alex

    Listing?
    Wo ist denn Listing A?

  • Am 11. September 2011 um 2:55 von Bennx

    Listing a:
    haben die gegessen… ich meine… vergessen!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *