Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Geleitwort des Fachgutachters
Vorwort
1 Einleitung
2 Einführung in eZ Components
3 Die Applikationsbasis
4 Fehlerbehandlung und Debugging
5 Konfiguration
6 Datenbankanbindung
7 ORM mit PersistentObject
8 Template
9 Übersetzung
10 Benutzereingaben validieren
11 Authentifizierung
12 Bildverarbeitung
13 Archive und Dateien
14 Mail
15 Logging
16 Diagramme
17 Feeds und Caching
18 Setup
A Inhalt der Buch-CD
Stichwort
Download: - ZIP, ca. 2,7 MB
Ihre Meinung?
<< zurück | Galileo Computing / <openbook> /eZ Components | vor >>
eZ Components von Tobias Schlitt, Kore Nordmann Das Entwickler-Handbuch
eZ Components geb., mit CD 454 S., 39,90 Euro Galileo Computing ISBN 978-3-8362-1073-7 |
| 6 Datenbankanbindung
|  | 6.1 Abstraktion
|  |  | 6.1.1 Abstraktion der API
|  |  | 6.1.2 SQL-Abstraktion
|  |  | 6.1.3 Unterstützte RDBMS
|  | 6.2 Nutzung in der Applikation
|  | 6.3 Die Database-Komponente
|  |  | 6.3.1 PDO
|  |  | 6.3.2 Fluent-Interfaces
|  | 6.4 Integration von Database
|  |  | 6.4.1 Ein neues Blog Posting erstellen
|  |  | 6.4.2 Prepared-Statements
|  |  | 6.4.3 Update
|  |  | 6.4.4 Daten auslesen
|  | 6.5 Komplexere Abfragen
|  |  | 6.5.1 Manuelle Queries
|  |  | 6.5.2 Sub-Selects
|  |  | 6.5.3 Joins
|  |  | 6.5.4 LIMIT und ORDER BY
|  | 6.6 Erweiterte Möglichkeiten
|  |  | 6.6.1 Lazy-Initialization
|  |  | 6.6.2 Ein anderes RDBMS verwenden
|  | 6.7 Fazit
Mit der Database-Komponente stellen eZ Components eine SQL-Query-Abstraktion bereit, welche die einheitliche Interaktion mit verschiedenen Datenbankmanagementsystemen ermöglicht. # 6 Datenbankanbindung Das Web ist entstanden, um Mitmenschen Daten zu präsentieren und mit ihnen gemeinsam an den Daten zu arbeiten. Mit dem Wachsen der darzustellenden Datenmengen entstehen neue Anforderungen an die verwendete Software, um diese Daten zu speichern und effizient darauf zuzugreifen. Dateisysteme mit statischen Dateien alleine konnten diese Aufgabe in der Zeit der wachsenden Informationsmenge nicht mehr ausreichend erfüllen. Aus diesem Zwang heraus entstanden Skriptsprachen wie PHP, die Inhalte dynamisch auf Basis von vorgehaltenen Datenmengen erzeugen können. Der frühe und schnelle Erfolg von PHP erklärt sich nicht unwesentlich durch die vielfältigen Anbindungsmöglichkeiten an relationale Datenbankmanagementsysteme (RDBMS), die nicht nur große Datenmengen zuverlässig und schnell zur Verfügung stellen können, sondern auch die Integrität und Verfügbarkeit der Daten sicherstellen. ## 6.1 Abstraktion Diese Vielfalt der verfügbaren RDBMS wurde allerdings mit der Zeit ein immer größeres Problem in PHP. Mit der Anzahl der Installationen und Benutzer steigt auch die Anzahl der Serverumgebungen, in denen eine Applikation funktionieren muss. Viele PHP-Applikationen können nur mit einem oder wenigen RDBMS zusammenarbeiten, verlassen sich auf die konkrete API der Client-Bibliothek oder Eigenheiten in der SQL-Interpretation des RDBMS. ### 6.1.1 Abstraktion der API Die Integration von MySQL mit PHP ist ein Beispiel für die unterschiedlichen APIs, selbst mit dem gleichen RDBMS. Mit PHP 5 und MySQL 4.1 entstand in PHP eine neue MySQL-Anbindung ext/mysqli, welche die bisher genutzte Erweiterung ext/mysql ablösen sollte, da aufgrund struktureller Probleme und neuer, inkompatibler Features in MySQL nicht mehr einfach weiterentwickelt werden konnte. Mit PHP 5.1 zog die Erweiterung ext/pdo in der Kern von PHP ein und versprach, eine Abstraktion für die verschiedenen RDBMS-Integrationen in PHP zu bieten und endlich ein einheitliches Interface zu schaffen. Seitdem ist es möglich, für das verwendete RDBMS einen entsprechenden Treiber zu installieren und unabhängig vom RDBMS über die gleichen Methoden mit der Datenbank zu interagieren. PDO bietet dabei über alle RDBMS hinweg Unterstützung für Transaktionen und Prepared Statements, auf die später noch im Detail eingegangen wird. ### 6.1.2 SQL-Abstraktion Die Database-Komponente baut auf PDO zur Abstraktion der verschiedenen RDBMS-Clients in PHP auf, jedoch kann und will PDO keine Abstraktion der Datenbanken an sich bieten. Auf Datenbanken greifen Sie in den meisten Fällen über die Structured Query Language (SQL) zu, die 1970 zum Zugriff auf relationale Daten entwickelt wurde und seitdem in mehreren Standards spezifiziert worden ist. Die erste deutliche Überarbeitung von 1992, SQL 92, wird mittlerweile von nahezu allen RDBMS vollständig implementiert, während SQL 1999 und SQL 2003 noch teilweise beziehungsweise größtenteils nicht implementiert sind. Zum Leidwesen aller Entwickler gibt es jedoch bei vielen Teilen von SQL unterschiedliche Interpretationen spezieller Features, oder einige RDBMS haben Features zu einem Zeitpunkt entwickelt, als diese noch nicht standardisiert waren. Ein bekanntes Beispiel ist das in Webapplikationen gerne verwendete, aus MySQL bekannte LIMIT, um die die Ergebnismenge eines SELECT-Statements zu begrenzen. Dieses Feature wurde ursprünglich von Rasmus Lerdorf entwickelt und teilweise erst viel später in ähnlicher Form in anderen Datenbanksystemen integriert. Die Aufgabe von Database ist es, Ihnen ein transparentes Interface zu bieten, das Sie unabhängig von den verschiedenen RDBMS macht, um das Portieren Ihrer Applikation in andere Server-Umgebungen zu erleichtern. ### 6.1.3 Unterstützte RDBMS Die Komponente Database unterstützt bislang eine Untermenge der von PDO angebundenen RDBMS. Da die Abstraktion von Database mit der SQL-Abstraktion weit über die Fähigkeiten von PDO hinausgeht, ist einiges an Aufwand zu investieren, um sicherzustellen, dass sich jedes neu angebundene RDBMS genau wie die anderen verhält. Bislang werden von Database die folgenden RDBMS unterstützt: MySQL SQLite PostgreSQL Oracle Microsoft SQL Server Später in diesem Kapitel werden wir darauf eingehen, wie Sie Database auch für andere RDBMS erweitern können. ### Ihr Kommentar Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück | <top> | vor >>
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung
Buchempfehlungen
| PHP 5.3 und MySQL 5.1
| Besser PHP programmieren
| Webshops mit Magento
| Sichere Webanwendungen
| PHP 5.3 und MySQL 5.1 - Videotraining
| Apache 2
| Suchmaschinen- Optimierung für Webentwickler
| Joomla! 1.5
Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

Copyright © Galileo Press 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

[Galileo Computing]
Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de