Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

SQLite und XML in PHP 5.

Ähnliche Präsentationen


Präsentation zum Thema: "SQLite und XML in PHP 5."—  Präsentation transkript:

1 SQLite und XML in PHP 5

2 SQLite: Allgemein SQLite ist ein "light-weight" SQL DBMS, das die meisten gewohnten Features einer SQL Datenbank unterstützt Sie können Datenbanken selber anlegen und löschen (werden in normalen Dateien abgelegt) In Verbindung mit den OO Features in PHP5 können alle DB-Tasks sehr einfach ausgeführt werden

3 SQLite: Datenbankzugriff
Wichtigste Klasse: SQLiteDatabase Öffnen / erzeugen einer Datenbank: $db = new SQLiteDatabase("MyDBs/test-db.xy"); Das Verzeichnis, in dem die Datenbank liegt muss Lese- und Schreibzugriff bieten: > chmod 777 MyDBs

4 SQLite: SQLiteDatabase
Häufig benötigte Methoden von SQLiteDatabase Abfrage mit Ergebnis: query(SQL) liefert ein Objekt der Klasse SQLiteResult $result = $db->query("select * from myTable"); Abfrage ohne Ergebnis: queryExec(SQL) liefert Boolean $success = $db->queryExec("insert into myTable values (1,2)");

5 SQLite: SQLiteResult Diese Klasse kapselt das Ergebnis einer SELECT Abfrage Informationen über das Ergebnis: numRows(): Anzahl der Datensätze im Ergebnis numFields(): Anzahl der Spalten fieldName(index): Name der Spalte an der Stelle index Traversieren des Ergebnisses mit den Methoden: rewind(): Ersten Datensatz des Ergebnisses anwählen valid(): Prüft ob noch weiter Datensätze vorhanden sind next(): Navigiert zum nächsten Datensatz im Ergebnis skip(anzahl): anzahl Datensätze überspringen current(typ): Aktueller Datensatz als assoziatives Array typ kann sein: SQLITE_NUM: Normales Array mit Spalten-Index als Schlüssel SQLITE_ASSOC: Assoziatives Array mit Spalten-Name als Schlüssel SQLITE_BOTH: Assoz. Array mit Index und Name als Schlüssel (Default!!!)

6 SQLite: SQLiteResult Beispiel: Ausgabe des Ergebnisses in HTML-Tabelle
<? $result = $db->query("select * from myTable"); if(!$result or result->numRows()==0) die("No results."); echo "<table border='1'>\n"; # spaltenüberschriften ausgeben echo "<tr>"; for($i=0; $i<$result->numFields(); $i++) echo "<th>". $result->fieldName($i) ."</th>"; echo "</tr>\n"; # ergebnis traversieren for($result->rewind(); $result->valid(); $result->next()) { foreach($result->current(SQLITE_NUM) as $value) { echo "<td>$value</td>"; } echo "</table>\n"; ?>

7 SQLite: Weitere Hilfe Offizielle Dokumentation zu SQLite:
Beispiel für eine einfache SQLite Konsole (Quelltext einsehbar mit der Endung ".phps") Beispiel für Datenbank anlegen:

8 SimpleXML: Allgemein SimpleXML ist eine PHP Library für Bearbeitung von XML Dateien Einfaches Laden und Traversieren von XML Änderung von bereits bestehenden Knoten möglich Einfache Unterstützung von XPath-Abfragen Keine Änderung der Baumstruktur möglich!!! Dafür kann DOM verwendet werden Speichern des XML Files über normale I/O Funktionen (fopen, fwrite) SimpleXML ist für lesendes Bearbeiten viel bequemer zu nutzen als die üblichen DOM Implementierungen

9 SimpleXML: Beispiel XML
books.xml <?xml version="1.0" encoding="ISO "?> <books> <book isbn=" "> <author firstname="Dan" lastname="Brown"/> <title>Angels and Demons</title> <price currency="USD">7.90</price> <review points="5">Very hot stuff</review> </book> <book isbn=" "> <author firstname="Jürgen" lastname="Mangler"/> <title>Diplomarbeit</title> <review points="10">Exceptionally cool</review> </books> Beachte: In $books steht jetzt der Root-Knoten! # XML Datei öffnen $books = simplexml_load_file("books.xml"); # Inhalt ausgeben echo $books->asXML();

10 SimpleXML: Beispiel XML
books.xml <?xml version="1.0" encoding="ISO "?> <books> <book isbn=" "> <author firstname="Dan" lastname="Brown"/> <title>Angels and Demons</title> <price currency="USD">7.90</price> <review points="5">Very hot stuff</review> </book> <book isbn=" "> <author firstname="Jürgen" lastname="Mangler"/> <title>Diplomarbeit</title> <review points="10">Exceptionally cool</review> </books> Beachte: Die Knoten im XML Baum werden einfach über den Namen angesprochen # Alle Buchautoren ausgeben foreach($books->book as $book) { echo utf8_decode($book->author['firstname']) . " " . utf8_decode($book->author['lastname']) . "<br>"; }

11 SimpleXML: Beispiel XML
books.xml <?xml version="1.0" encoding="ISO "?> <books> <book isbn=" "> <author firstname="Dan" lastname="Brown"/> <title>Angels and Demons</title> <price currency="USD">7.90</price> <review points="5">Very hot stuff</review> </book> <book isbn=" "> <author firstname="Jürgen" lastname="Mangler"/> <title>Diplomarbeit</title> <review points="10">Exceptionally cool</review> </books> Beachte: xpath() liefert eine Knotenmenge # Navigation mit XPath $currencies = foreach($currencies as $currency) { echo $currency . "<br>"; }

12 SimpleXML: Beispiel XML
books.xml <?xml version="1.0" encoding="ISO "?> <books> <book isbn=" "> <author firstname="Dan" lastname="Brown"/> <title>Angels and Demons</title> <price currency="USD">7.90</price> <review points="5">Very hot stuff</review> </book> <book isbn=" "> <author firstname="Jürgen" lastname="Mangler"/> <title>Diplomarbeit</title> <review points="10">Exceptionally cool</review> </books> Beachte: der Indizierungsoperator bei einem Knoten liefert das entsprechende Attribut # Alternative XPath Variante $prices = foreach($prices as $price) { echo $price["currency"] . "<br>"; }

13 SimpleXML: Beispiel XML
books.xml <?xml version="1.0" encoding="ISO "?> <books> <book isbn=" "> <author firstname="Dan" lastname="Brown"/> <title>Angels and Demons</title> <price currency="USD">7.90</price> <review points="5">Very hot stuff</review> </book> <book isbn=" "> <author firstname="Jürgen" lastname="Mangler"/> <title>Diplomarbeit</title> <review points="10">Exceptionally cool</review> </books> children() liefert alle Unterknoten, attributes() liefert alle attribute # Alle Infos zur Diplomarbeit von J. Mangler ausgeben: $da = echo "<xmp>"; foreach($da[0]->children() as $info) { echo utf8_decode($info->asXML()) . "\n"; } echo "</xmp>";

14 SimpleXML: Beispiel XML
books.xml <?xml version="1.0" encoding="ISO "?> <books> <book isbn=" "> <author firstname="Dan" lastname="Brown"/> <title>Angels and Demons</title> <price currency="USD">7.90</price> <review points="5">Very hot stuff</review> </book> <book isbn=" "> <author firstname="Jürgen" lastname="Mangler"/> <title>Dissertation</title> <review points="10">Exceptionally cool</review> </books> # Knotenwert ändern und Datei speichern $da[0]->title = "Dissertation"; $xmlFile = fopen("books.xml", "w"); fwrite($xmlFile, $books->asXML()); fclose($xmlFile); Schreiben in File derzeit nicht unterstützt  Nur über Standard I/O möglich

15 SimpleXML Links Auf der PHP Seite Tutorials
Tutorials


Herunterladen ppt "SQLite und XML in PHP 5."

Ähnliche Präsentationen


Google-Anzeigen