Effizient Arbeiten mit der DB
als Präsentation ▻Ein wichtiges Grundprinzip beim Programmieren mit Datenbanken: Das Filtern und Berechnen der Daten möglichst in der Datenbank erledigen und möglichst wenige Daten zu PHP übermitteln.
▻Filtern in der Datenbank
Folgender Ansatz ist also ineffizent, besonders wenn viele Daten in der Datenbank gespeichert sind:
Php Code Ineffiziente Abfrage der Datenbank
$sth = $dbh->query("SELECT * FROM person"); // SO NICHT! $personen = $sth->fetchAll(); foreach( $personen as $person ) { if ( $person->profile_visible ) { echo "$person->firstname $person->email</br>\n"; } }
Besser wäre, den Filter bereits im SELECT einzubauen:
Php Code Effiziente Abfrage der Datenbank
$sth = $dbh->query( "SELECT * FROM person WHERE profile_visible=1" ); $personen = $sth->fetchAll(); foreach( $personen as $person ) { echo "$person->firstname $person->email</br>\n"; }
Seitenweise Anzeigen
Die gleichen Überlegungen gelten auch, wenn Datensätze “seitenweise” angezeigt
werden sollen: hier verwendet man bereits in der Datenbank LIMIT
um nur
die benötigten Datensätze zu laden.
Datentypen der Datenbank
Die Verwendung der richtigen Datentypen in der Datenbank erleichtert die
Abfragen. Zum Beipiel zum Speichern eines Datums sollte man den Typ DATE
oder
TIMESTAMP
verwenden. Das ermöglicht das Sortieren nach Datum und Berechnungen wie
„falls Datum nicht älter als 100 Tage ist“
select titel,publicationdate from projects where datediff( curdate( ) , publicationdate ) <= 100;
Diese SQL-Abfage zeigt Titel und Publikations-Datum aller Werke die in den letzten 100 Tagen publiziert wurden. Hätte man das Datum nur als String in der Datenbank gespeichert, dann wäre das sehr viel umständlicher.
Kapitel
- Das Web Und Html
- Css
- Css Layout
- Urls
- Formulare
- Javascript Dom
- Jquery
- Kommandozeile
- Git
- Http
- Php Vorbereitung
- Php
- Php Db Lesen
- Session
- Php Db Schreiben
- Php Db Optimierung
- Grafik
- Javascript
- Applied Jquery And Css
- Json
- Xml
- Security
- Injection
- Authentifizierung und Session-Management
- Cross Site Scripting (XSS)
- Unsichere direkte Objektreferenzen
- Sicherheitsrelevante Fehlkonfiguration
- Verlust der Vertraulichkeit sensibler Daten
- Fehlerhafte Autorisierung auf Anwendungsebene
- Cross-Site Request Forgery (CSRF)
- Nutzung von Komponenten mit bekannten Schwachstellen
- Ungeprüfte Um- und Weiterleitungen
- Wordpress
- Apache
- Advanced Javascript
- Qualitaet