Joomla! Programmierung/Programmierung/Datenbankklassen
Inhaltsverzeichnis |
[Bearbeiten] Wie benutze ich die Joomla! Datenbankklassen in meinem Script ?
[Bearbeiten] Warum ?
Joomla! wurde erstellt, um verschiedene Arten von SQL-Datenbanksystemen in unterschiedlichen Umgebungen mit unterschiedlichen Tabellenpräfixen zu unterstützen. Zusätzlich zu diesen Funktionen erstellt die Klasse automatisch eine Verbindung zur Datenbank. Abgesehn davon, dass Sie das Objakt instanzieren müssen, benötigen Sie nur 2 Zeilen Code um ein Resultat der Datenbank zu erhalten - und das in einer Vielzahl von Formaten. Die Benutzung des Joomla! Datenbanklayers sichert ein Maximum an Kompatibilität und Flexibilität für Ihre Erweiterungen.
[Bearbeiten] Vorbereitung
/* Eine Referenz auf das Datenbankobjekt beziehen */ $db = JFactory::getDBO(); /* Den Query setzen */ $query = "SELECT * FROM #__example_table WHERE id = 999999"; $db->setQuery($query);
Zuerst instanzieren wir das Datenbankobjekt, dann bereiten wir den Query vor. Sie können normale SQL Syntax benutzen. Das einzige was sie ändern müssen, ist der Tabellenpräfix. Um dies so flexibel wie möglich zu machen, benutzt Joomla! einen Platzhalter für den Präfix, das #__. Im nächsten Schritt, dem setQuery(), wird diese Zeichenkette mit dem eigentlichen Präfix ersetzt.
Falls wir keine Informationen erhalten wollen, aber eine Zeile einfügen wollen, brauchen wir noch eine Funktion. Jede Zeichenkette in der SQL-Syntax muss gequotet werden. Daher müssen wir diese Werte an die Funktion $db->Quote($value) übergeben.
Was immer wir auch tun wollen, wir müssen den Query mit der Funktion SetQuery() setzen. Obwohl Sie auch den Query direkt als einen Parameter der Funktion setQuery() schreiben könnten, wird dies normalerweise getan indem der Query zuerst in eine Variable gespeichert wird, normalerweise $query, und dann wird diese Variable übergeben. Dies hilft sauberen, lesbaren Code zu schreiben.
[Bearbeiten] Ausführung
Um den Query auszuführen, bietet Joomla! einige Funktionen, die sich in ihrem Rückgabewert unterscheiden
[Bearbeiten] Einfache Queryausführung
- query
[Bearbeiten] Information über die Ausführung des Querys
- getAffectedRows
- explain
- insertid
[Bearbeiten] Ausführung von Insert Query
- insertObject
[Bearbeiten] Resultat
Die Datenbankklasse enhält viele Methoden um mit den Sätzen der Queryresultate zu arbeiten.
[Bearbeiten] Resultat mit einfachem Wert
- loadResult
[Bearbeiten] Resultat einer einzelnen Zeile
- loadObject
- loadRow
- loadResultArray
[Bearbeiten] Resultat mit mehreren Zeilen
- loadObjectList, zum Beipiel: Ausgabe einer Liste in drei Spalten
- loadRowList
- loadAssocList
[Bearbeiten] Resultate diverser Methoden
- getNumRows