mit DB-Anbindung Lizenz Lizenz Dieser Text steht unter einer Creative Commons Attribution-Share Alike 3.0 Germany Lizenz, siehe http://creativecommons.org/licenses/by-sa/3.0/de/ K. Puschke phpMySQL
mit DB-Anbindung Outline 1 Erste Schritte 2 Grundbegriffe des Web 3 PHP Programmierung 4 MySQL Datenbanken 5 Website mit Datenbankanbindung K. Puschke phpMySQL
mit DB-Anbindung Mit PHP-Dateien arbeiten PHP Outline 1 Erste Schritte Mit PHP-Dateien arbeiten PHP 2 Grundbegriffe des Web 3 PHP Programmierung 4 MySQL Datenbanken 5 Website mit Datenbankanbindung K. Puschke phpMySQL
mit DB-Anbindung Mit PHP-Dateien arbeiten PHP Allgemeine Syntax jeder Block PHP-Code eingeschlossen in <?php ... ?> oder <? ... ?> kann aus mehreren Zeilen Code bestehen <? echo "Hallo, <b>Welt</b>!"; echo "Na, wie geht’s?"; ?> K. Puschke phpMySQL
mit DB-Anbindung Mit PHP-Dateien arbeiten PHP Allgemeine Syntax jeder Block PHP-Code eingeschlossen in <?php ... ?> oder <? ... ?> kann aus mehreren Zeilen Code bestehen <? echo "Hallo, <b>Welt</b>!"; echo "Na, wie geht’s?"; ?> jede Zeile Code endet mit einem ; K. Puschke phpMySQL
mit DB-Anbindung Mit PHP-Dateien arbeiten PHP Allgemeine Syntax jeder Block PHP-Code eingeschlossen in <?php ... ?> oder <? ... ?> kann aus mehreren Zeilen Code bestehen <? echo "Hallo, <b>Welt</b>!"; echo "Na, wie geht’s?"; ?> jede Zeile Code endet mit einem ; Leerzeilen und Einrückungen werden nicht beachtet K. Puschke phpMySQL
mit DB-Anbindung Mit PHP-Dateien arbeiten PHP Allgemeine Syntax jeder Block PHP-Code eingeschlossen in <?php ... ?> oder <? ... ?> kann aus mehreren Zeilen Code bestehen <? echo "Hallo, <b>Welt</b>!"; echo "Na, wie geht’s?"; ?> jede Zeile Code endet mit einem ; Leerzeilen und Einrückungen werden nicht beachtet Groß- und Kleinschreibung relevant K. Puschke phpMySQL
mit DB-Anbindung Mit PHP-Dateien arbeiten PHP Kommentare Kommentare werden nicht ausgeführt dienen zur Erläuterung des Programms oder helfen beim Debuggen K. Puschke phpMySQL
mit DB-Anbindung Mit PHP-Dateien arbeiten PHP Kommentare Kommentare werden nicht ausgeführt dienen zur Erläuterung des Programms oder helfen beim Debuggen # oder // kommentieren den Rest der Zeile aus echo “Hallo, Welt”; # Erklärung K. Puschke phpMySQL
mit DB-Anbindung Mit PHP-Dateien arbeiten PHP Kommentare Kommentare werden nicht ausgeführt dienen zur Erläuterung des Programms oder helfen beim Debuggen # oder // kommentieren den Rest der Zeile aus echo “Hallo, Welt”; # Erklärung Blockkommentare mit /* ...*/ K. Puschke phpMySQL
mit DB-Anbindung Mit PHP-Dateien arbeiten PHP Kommentare Kommentare werden nicht ausgeführt dienen zur Erläuterung des Programms oder helfen beim Debuggen # oder // kommentieren den Rest der Zeile aus echo “Hallo, Welt”; # Erklärung Blockkommentare mit /* ...*/ Vorsicht: PHP ignoriert PHP-Kommentare, HTML ignoriert HTML-Kommentare K. Puschke phpMySQL
mit DB-Anbindung Mit PHP-Dateien arbeiten PHP Formatierung Good Practice Guter Code ist nicht nur maschinen-, sondern auch menschenlesbar! K. Puschke phpMySQL
mit DB-Anbindung Mit PHP-Dateien arbeiten PHP Formatierung Good Practice Guter Code ist nicht nur maschinen-, sondern auch menschenlesbar! aussgekräftige Kommentare K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Outline 1 Erste Schritte 2 Grundbegriffe des Web Begriffsklärung Statische Webseiten Dynamische Webseiten 3 PHP Programmierung 4 MySQL Datenbanken 5 Website mit Datenbankanbindung K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Grundbegriffe WWW: World Wide Web - ein Netzwerk verlinkter Dokumente (Webseiten), nutzbar via Internet K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Grundbegriffe WWW: World Wide Web - ein Netzwerk verlinkter Dokumente (Webseiten), nutzbar via Internet HTTP: Hypertext Transfer Protocol - ein Protokoll zum Transport von Inhalten über das WWW K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Grundbegriffe WWW: World Wide Web - ein Netzwerk verlinkter Dokumente (Webseiten), nutzbar via Internet HTTP: Hypertext Transfer Protocol - ein Protokoll zum Transport von Inhalten über das WWW HTML: Hypertext Markup Language - eine Auszeichnungssprache für Webseiten K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Grundbegriffe WWW: World Wide Web - ein Netzwerk verlinkter Dokumente (Webseiten), nutzbar via Internet HTTP: Hypertext Transfer Protocol - ein Protokoll zum Transport von Inhalten über das WWW HTML: Hypertext Markup Language - eine Auszeichnungssprache für Webseiten PHP: PHP Hypertext Preprocessor - eine Programmiersprache K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Grundbegriffe WWW: World Wide Web - ein Netzwerk verlinkter Dokumente (Webseiten), nutzbar via Internet HTTP: Hypertext Transfer Protocol - ein Protokoll zum Transport von Inhalten über das WWW HTML: Hypertext Markup Language - eine Auszeichnungssprache für Webseiten PHP: PHP Hypertext Preprocessor - eine Programmiersprache MySQL: ein Datenbanksystem K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Client und Server Client Software, die Inhalte anfordert und verarbeitet K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Client und Server Client Software, die Inhalte anfordert und verarbeitet i.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . ) K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Client und Server Client Software, die Inhalte anfordert und verarbeitet i.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . ) Webserver K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Client und Server Client Software, die Inhalte anfordert und verarbeitet i.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . ) Webserver Software, die Webdienste anbietet d.h. Inhalte (z.B. Webseiten) per HTTP an Client ausliefert K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Client und Server Client Software, die Inhalte anfordert und verarbeitet i.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . ) Webserver Software, die Webdienste anbietet d.h. Inhalte (z.B. Webseiten) per HTTP an Client ausliefert z.B. Apache Webserver,. . . K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Client und Server Client Software, die Inhalte anfordert und verarbeitet i.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . ) Webserver Software, die Webdienste anbietet d.h. Inhalte (z.B. Webseiten) per HTTP an Client ausliefert z.B. Apache Webserver,. . . Datenbankserver K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Client und Server Client Software, die Inhalte anfordert und verarbeitet i.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . ) Webserver Software, die Webdienste anbietet d.h. Inhalte (z.B. Webseiten) per HTTP an Client ausliefert z.B. Apache Webserver,. . . Datenbankserver Software, die Datenbankdienste (ein Datenbanksystem) anbietet K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Client und Server Client Software, die Inhalte anfordert und verarbeitet i.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . ) Webserver Software, die Webdienste anbietet d.h. Inhalte (z.B. Webseiten) per HTTP an Client ausliefert z.B. Apache Webserver,. . . Datenbankserver Software, die Datenbankdienste (ein Datenbanksystem) anbietet manchmal auch gemeint: der Rechner, auf dem die jeweilige Software läuft K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Statische Webseiten Inhalte liegen als HTML-Dateien bereits fertig auf dem Server vor K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Statische Webseiten Inhalte liegen als HTML-Dateien bereits fertig auf dem Server vor jeder Client bekommt jederzeit dieselben Inhalte ausgeliefert K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Dynamische Webseite Inhalte werden dynamisch ermittelt clientseitig im Browser (javascript) K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Dynamische Webseite mit PHP Ablauf Client (Browser) fordert Webseite an K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Dynamische Webseite mit PHP Ablauf Client (Browser) fordert Webseite an Webserver findet PHP-Datei PHP-Code wird ausgeführt interagiert ggf. mit Datenbanksystem K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Dynamische Webseite mit PHP Ablauf Client (Browser) fordert Webseite an Webserver findet PHP-Datei PHP-Code wird ausgeführt interagiert ggf. mit Datenbanksystem erzeugt ggf. HTML K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Dynamische Webseite mit PHP Ablauf Client (Browser) fordert Webseite an Webserver findet PHP-Datei PHP-Code wird ausgeführt interagiert ggf. mit Datenbanksystem erzeugt ggf. HTML Webserver liefert HTML an Client aus K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Dynamische Webseite mit PHP Ablauf Client (Browser) fordert Webseite an Webserver findet PHP-Datei PHP-Code wird ausgeführt interagiert ggf. mit Datenbanksystem erzeugt ggf. HTML Webserver liefert HTML an Client aus Client verarbeitet HTML Browser stellt Webseite dar K. Puschke phpMySQL
mit DB-Anbindung Begriffsklärung Statische Webseiten Dynamische Webseiten Architektur Drei-Schichten-Architektur Datenbanksystem Datenspeicherung und Datenverwaltung Webserver Anwendungslogik und Darstellung K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Outline 1 Erste Schritte 2 Grundbegriffe des Web 3 PHP Programmierung Skalare Daten Ablaufsteuerung Userinput verarbeiten 4 MySQL Datenbanken 5 Website mit Datenbankanbindung K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Skalare Datentypen integer ganze Zahl, z.B. 42 float reelle Zahl, z.B. 3.14 string Zeichenkette, z.B. “Hallo, Welt!” oder “7” K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Skalare Datentypen integer ganze Zahl, z.B. 42 float reelle Zahl, z.B. 3.14 string Zeichenkette, z.B. “Hallo, Welt!” oder “7” boolean true oder false K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Skalarvariablen Variablennamen beginnen mit $: $username, $NachName, $Telefon2,... keine explizite Initialisierung oder Deklaration nötig K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Variablen Good Practice Guter Code ist nicht nur maschinen-, sondern auch menschenlesbar! K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Variablen Good Practice Guter Code ist nicht nur maschinen-, sondern auch menschenlesbar! aussagekräftige Variablennamen wählen K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Ablaufsteuerung Good Practice In längeren if...elseif...-Konstrukten einen else-Zweig vorsehen! K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Ablaufsteuerung Good Practice In längeren if...elseif...-Konstrukten einen else-Zweig vorsehen! Abfangen unvorhergesehener Ereignisse K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Ablaufsteuerung Good Practice In längeren if...elseif...-Konstrukten einen else-Zweig vorsehen! Abfangen unvorhergesehener Ereignisse ggf. sogar Programmabbruch mit Fehlermeldung K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Formatierung Good Practice Guter Code ist nicht nur maschinen-, sondern auch menschenlesbar! K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Formatierung Good Practice Guter Code ist nicht nur maschinen-, sondern auch menschenlesbar! Einrückungen K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Formatierung Good Practice Guter Code ist nicht nur maschinen-, sondern auch menschenlesbar! Einrückungen Leerzeilen K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Formatierung Good Practice Guter Code ist nicht nur maschinen-, sondern auch menschenlesbar! Einrückungen Leerzeilen Zeilenumbrüche K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Formatierung Good Practice Guter Code ist nicht nur maschinen-, sondern auch menschenlesbar! Einrückungen Leerzeilen Zeilenumbrüche Klammern verwenden in langen, komplexen Ausdrücken K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Formulare GET und POST Methode GET oder POST wählen (default GET) <form action=”hallo.php” method=”post”> K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Formulare GET und POST Methode GET oder POST wählen (default GET) <form action=”hallo.php” method=”post”> GET „hängt Daten an URL dran “ K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Formulare GET und POST Methode GET oder POST wählen (default GET) <form action=”hallo.php” method=”post”> GET „hängt Daten an URL dran “ URL incl. Parameter kann direkt im Browser aufgerufen und einfach geändert werden (bookmarks, history) K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Formulare GET und POST Methode GET oder POST wählen (default GET) <form action=”hallo.php” method=”post”> GET „hängt Daten an URL dran “ URL incl. Parameter kann direkt im Browser aufgerufen und einfach geändert werden (bookmarks, history) GET und POST sind unverschlüsselt und user können beliebige Daten senden K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Formulare GET und POST Methode GET oder POST wählen (default GET) <form action=”hallo.php” method=”post”> GET „hängt Daten an URL dran “ URL incl. Parameter kann direkt im Browser aufgerufen und einfach geändert werden (bookmarks, history) GET und POST sind unverschlüsselt und user können beliebige Daten senden Faustregel: K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Formulare GET und POST Methode GET oder POST wählen (default GET) <form action=”hallo.php” method=”post”> GET „hängt Daten an URL dran “ URL incl. Parameter kann direkt im Browser aufgerufen und einfach geändert werden (bookmarks, history) GET und POST sind unverschlüsselt und user können beliebige Daten senden Faustregel: Daten dienen nur der Ablaufsteuerung (z.B. Anzeige bestimmter Produktkategorie): GET K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Formulare GET und POST Methode GET oder POST wählen (default GET) <form action=”hallo.php” method=”post”> GET „hängt Daten an URL dran “ URL incl. Parameter kann direkt im Browser aufgerufen und einfach geändert werden (bookmarks, history) GET und POST sind unverschlüsselt und user können beliebige Daten senden Faustregel: Daten dienen nur der Ablaufsteuerung (z.B. Anzeige bestimmter Produktkategorie): GET Daten weitergehend benötigt (z.B. Bestellung in Datenbank schreiben): POST K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Userinput WARNING ALL Input is EVIL! user geben unabsichtlich Unerwartetes ein K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Userinput WARNING ALL Input is EVIL! user geben unabsichtlich Unerwartetes ein user geben absichtlich Unerwünschtes ein K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Userinput WARNING ALL Input is EVIL! user geben unabsichtlich Unerwartetes ein user geben absichtlich Unerwünschtes ein Eingaben können sehr großen Schaden anrichten K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Userinput WARNING All Input is Evil! user benutzen nicht das Formular, erzeugen die POST/GET-Daten selbst K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Userinput WARNING All Input is Evil! user benutzen nicht das Formular, erzeugen die POST/GET-Daten selbst deshalb: auch Eingaben prüfen, die vermeintlich vorgegebene Werte haben (radiobuttons, menus) K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Eingaben unschädlich machen Eingaben filtern Whitelist: explizit festlegen, welche Zeichen zulässig sind (z.B. nur Buchstaben), alles andere entfernen K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Eingaben unschädlich machen Eingaben filtern Whitelist: explizit festlegen, welche Zeichen zulässig sind (z.B. nur Buchstaben), alles andere entfernen Blacklist: explizit festlegen, welche Zeichen unzulässig sind (z.B. <,>,/), diese entfernen K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Eingaben unschädlich machen Eingaben filtern Whitelist: explizit festlegen, welche Zeichen zulässig sind (z.B. nur Buchstaben), alles andere entfernen Blacklist: explizit festlegen, welche Zeichen unzulässig sind (z.B. <,>,/), diese entfernen bei Erstellung der Listen kann leicht etwas übersehen werden - Filterungen sind daher fehleranfällig! K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Eingaben unschädlich machen Escape/Maskieren Eingaben vor der weiteren Verarbeitung escapen, d.h. gefährliche Zeichen maskieren K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Eingaben unschädlich machen Escape/Maskieren Eingaben vor der weiteren Verarbeitung escapen, d.h. gefährliche Zeichen maskieren abhängig von der Art der weiteren Verarbeitung K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Eingaben unschädlich machen Escape/Maskieren Eingaben vor der weiteren Verarbeitung escapen, d.h. gefährliche Zeichen maskieren abhängig von der Art der weiteren Verarbeitung Beispiel: für Ausgabe von HTML gefährliche Zeichen in HTML-Entities umwandeln K. Puschke phpMySQL
mit DB-Anbindung Skalare Daten Ablaufsteuerung Userinput verarbeiten Eingaben unschädlich machen Escape/Maskieren Eingaben vor der weiteren Verarbeitung escapen, d.h. gefährliche Zeichen maskieren abhängig von der Art der weiteren Verarbeitung Beispiel: für Ausgabe von HTML gefährliche Zeichen in HTML-Entities umwandeln geeignete php-Funktionen vorhanden, keine Gefahr etwas zu vergessen - weniger fehleranfällig K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Datenbanksystem Datenbank und Datenbankmanagementsystem Datenbanksystem dient der Speicherung und Verwaltung von Daten K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Datenbanksystem Datenbank und Datenbankmanagementsystem Datenbanksystem dient der Speicherung und Verwaltung von Daten besteht aus Datenbanken und Datenbankmanagementsystem (DBMS) K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Datenbanksystem Datenbank und Datenbankmanagementsystem Datenbanksystem dient der Speicherung und Verwaltung von Daten besteht aus Datenbanken und Datenbankmanagementsystem (DBMS) Datenbank: strukturiert abgelegte Daten K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Datenbanksystem Datenbank und Datenbankmanagementsystem Datenbanksystem dient der Speicherung und Verwaltung von Daten besteht aus Datenbanken und Datenbankmanagementsystem (DBMS) Datenbank: strukturiert abgelegte Daten zu verwaltende Daten, z.B. Adressen K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Datenbanksystem Datenbank und Datenbankmanagementsystem Datenbanksystem dient der Speicherung und Verwaltung von Daten besteht aus Datenbanken und Datenbankmanagementsystem (DBMS) Datenbank: strukturiert abgelegte Daten zu verwaltende Daten, z.B. Adressen Datenbankschema: Metadaten zur Datenbankdefinition K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Datenbanksystem Datenbank und Datenbankmanagementsystem Datenbanksystem dient der Speicherung und Verwaltung von Daten besteht aus Datenbanken und Datenbankmanagementsystem (DBMS) Datenbank: strukturiert abgelegte Daten zu verwaltende Daten, z.B. Adressen Datenbankschema: Metadaten zur Datenbankdefinition Datenbankmanagementsystem: Software zur Verwaltung der Daten K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Datenbanksystem Datenbank und Datenbankmanagementsystem Datenbanksystem dient der Speicherung und Verwaltung von Daten besteht aus Datenbanken und Datenbankmanagementsystem (DBMS) Datenbank: strukturiert abgelegte Daten zu verwaltende Daten, z.B. Adressen Datenbankschema: Metadaten zur Datenbankdefinition Datenbankmanagementsystem: Software zur Verwaltung der Daten Datenbank definieren, erzeugen, manipulieren K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken MySQL DBMS sehr verbreitet in Webanwendungen K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken MySQL DBMS sehr verbreitet in Webanwendungen auch eingebettet in anderen Anwendungen K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken MySQL DBMS sehr verbreitet in Webanwendungen auch eingebettet in anderen Anwendungen schwedische Firma MySQL AB, dann Sun Microsystems, dann Übernahme durch Oracle K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken MySQL DBMS sehr verbreitet in Webanwendungen auch eingebettet in anderen Anwendungen schwedische Firma MySQL AB, dann Sun Microsystems, dann Übernahme durch Oracle kostenlose Community-Version, freie Software (GPL) K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken MySQL DBMS sehr verbreitet in Webanwendungen auch eingebettet in anderen Anwendungen schwedische Firma MySQL AB, dann Sun Microsystems, dann Übernahme durch Oracle kostenlose Community-Version, freie Software (GPL) kostenpflichtige Enterprise-Version K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken MySQL DBMS sehr verbreitet in Webanwendungen auch eingebettet in anderen Anwendungen schwedische Firma MySQL AB, dann Sun Microsystems, dann Übernahme durch Oracle kostenlose Community-Version, freie Software (GPL) kostenpflichtige Enterprise-Version Relationales DBMS K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Relationales Modell E.F. Codd (1970) hohe Verbreitung seit den 80er Jahren, z.B. K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Relationales Modell E.F. Codd (1970) hohe Verbreitung seit den 80er Jahren, z.B. MySQL K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Relationales Modell E.F. Codd (1970) hohe Verbreitung seit den 80er Jahren, z.B. MySQL PostgreSQL K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Relationales Modell E.F. Codd (1970) hohe Verbreitung seit den 80er Jahren, z.B. MySQL PostgreSQL Oracle K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Relationales Modell E.F. Codd (1970) hohe Verbreitung seit den 80er Jahren, z.B. MySQL PostgreSQL Oracle . . . K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Relationales Modell E.F. Codd (1970) hohe Verbreitung seit den 80er Jahren, z.B. MySQL PostgreSQL Oracle . . . Datenbank als Sammlung von Relationen (Tabellen) K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Relationales Modell E.F. Codd (1970) hohe Verbreitung seit den 80er Jahren, z.B. MySQL PostgreSQL Oracle . . . Datenbank als Sammlung von Relationen (Tabellen) Relation: Menge von Tupeln (Datensätzen, Zeilen) K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Relationales Modell E.F. Codd (1970) hohe Verbreitung seit den 80er Jahren, z.B. MySQL PostgreSQL Oracle . . . Datenbank als Sammlung von Relationen (Tabellen) Relation: Menge von Tupeln (Datensätzen, Zeilen) unsortiert K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Relationales Modell E.F. Codd (1970) hohe Verbreitung seit den 80er Jahren, z.B. MySQL PostgreSQL Oracle . . . Datenbank als Sammlung von Relationen (Tabellen) Relation: Menge von Tupeln (Datensätzen, Zeilen) unsortiert keine Duplikate K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Client und Server Datenbankserver: Software, die Datenbankdienste (ein Datenbanksystem) anbietet K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Client und Server Datenbankserver: Software, die Datenbankdienste (ein Datenbanksystem) anbietet auch der Rechner, auf dem dieser Dienst läuft K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Client und Server Datenbankserver: Software, die Datenbankdienste (ein Datenbanksystem) anbietet auch der Rechner, auf dem dieser Dienst läuft Anwendung oder Client greift auf den Datenbankserver zu K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken MySQL Clients und Anwendungen Kommandozeilenclient mysql K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken MySQL Clients und Anwendungen Kommandozeilenclient mysql Webinterface phpmyadmin K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken MySQL Clients und Anwendungen Kommandozeilenclient mysql Webinterface phpmyadmin MySQL GUI Tools K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken MySQL Clients und Anwendungen Kommandozeilenclient mysql Webinterface phpmyadmin MySQL GUI Tools . . . K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken MySQL Clients und Anwendungen Kommandozeilenclient mysql Webinterface phpmyadmin MySQL GUI Tools . . . Webanwendungen K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken MySQL Clients und Anwendungen Kommandozeilenclient mysql Webinterface phpmyadmin MySQL GUI Tools . . . Webanwendungen MediaWiki K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken MySQL Clients und Anwendungen Kommandozeilenclient mysql Webinterface phpmyadmin MySQL GUI Tools . . . Webanwendungen MediaWiki WordPress K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Erste Befehle SHOW DATABASES zeigt alle Datenbanken K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Erste Befehle SHOW DATABASES zeigt alle Datenbanken USE datenbank wählt Datenbank datenbank aus K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Erste Befehle SHOW DATABASES zeigt alle Datenbanken USE datenbank wählt Datenbank datenbank aus SHOW TABLES zeigt Tabellen der gewählten Datenbank K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Erste Befehle SHOW DATABASES zeigt alle Datenbanken USE datenbank wählt Datenbank datenbank aus SHOW TABLES zeigt Tabellen der gewählten Datenbank DESCRIBE tabelle zeigt Spalten der Tabelle an K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Abfragen I SELECT verlangt Angabe von Spalte(n) und Tabellen, die auszugeben sind K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Abfragen I SELECT verlangt Angabe von Spalte(n) und Tabellen, die auszugeben sind * bedeutet alle Spalten der Tabelle K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Abfragen I SELECT verlangt Angabe von Spalte(n) und Tabellen, die auszugeben sind * bedeutet alle Spalten der Tabelle SELECT Name,Vorname FROM KundInnen K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Abfragen I SELECT verlangt Angabe von Spalte(n) und Tabellen, die auszugeben sind * bedeutet alle Spalten der Tabelle SELECT Name,Vorname FROM KundInnen SELECT * FROM KundInnen K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Abfragen I SELECT verlangt Angabe von Spalte(n) und Tabellen, die auszugeben sind * bedeutet alle Spalten der Tabelle SELECT Name,Vorname FROM KundInnen SELECT * FROM KundInnen ORDER BY K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Abfragen I SELECT verlangt Angabe von Spalte(n) und Tabellen, die auszugeben sind * bedeutet alle Spalten der Tabelle SELECT Name,Vorname FROM KundInnen SELECT * FROM KundInnen ORDER BY sortiert Ausgabe K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Abfragen I SELECT verlangt Angabe von Spalte(n) und Tabellen, die auszugeben sind * bedeutet alle Spalten der Tabelle SELECT Name,Vorname FROM KundInnen SELECT * FROM KundInnen ORDER BY sortiert Ausgabe SELECT Name,Vorname FROM KundInnen ORDER BY Name K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Formatierung Good Practice SELECT * nicht in Anwendungen verwenden! K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Formatierung Good Practice SELECT * nicht in Anwendungen verwenden! praktisch bei interaktivem Zugriff auf DB K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Formatierung Good Practice SELECT * nicht in Anwendungen verwenden! praktisch bei interaktivem Zugriff auf DB gefährlich in Anwendungen - das Datenbankschema könnte sich z.B. geändert haben K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Abfragen II LIMIT beschränkt die Zahl der ausgegeben Einträge K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Abfragen II LIMIT beschränkt die Zahl der ausgegeben Einträge häufig mit ORDER BY kombiniert K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Abfragen II LIMIT beschränkt die Zahl der ausgegeben Einträge häufig mit ORDER BY kombiniert SELECT Name,Vorname FROM KundInnen LIMIT 5 K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Abfragen II LIMIT beschränkt die Zahl der ausgegeben Einträge häufig mit ORDER BY kombiniert SELECT Name,Vorname FROM KundInnen LIMIT 5 NULL K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Abfragen II LIMIT beschränkt die Zahl der ausgegeben Einträge häufig mit ORDER BY kombiniert SELECT Name,Vorname FROM KundInnen LIMIT 5 NULL Kein Eintrag (z.B. für Kundin Müller keine Telefonnummer vermerkt): NULL K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Abfragen II LIMIT beschränkt die Zahl der ausgegeben Einträge häufig mit ORDER BY kombiniert SELECT Name,Vorname FROM KundInnen LIMIT 5 NULL Kein Eintrag (z.B. für Kundin Müller keine Telefonnummer vermerkt): NULL NULL K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Abfragen II LIMIT beschränkt die Zahl der ausgegeben Einträge häufig mit ORDER BY kombiniert SELECT Name,Vorname FROM KundInnen LIMIT 5 NULL Kein Eintrag (z.B. für Kundin Müller keine Telefonnummer vermerkt): NULL NULL NULL ist etwas anderes als die Zahl Null oder ein leerer String! K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Ergebnisse einschränken I WHERE schränkt Ergebnisse ein K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Ergebnisse einschränken I WHERE schränkt Ergebnisse ein SELECT Name FROM KundInnen WHERE Stadt = ’Salzburg’ K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Ergebnisse einschränken I WHERE schränkt Ergebnisse ein SELECT Name FROM KundInnen WHERE Stadt = ’Salzburg’ SELECT Name FROM KundInnen WHERE Vorname IS NULL K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Ergebnisse einschränken II AND und OR verknüpfen mehrere Bedingungen K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Ergebnisse einschränken II AND und OR verknüpfen mehrere Bedingungen SELECT Name FROM KundInnen WHERE Stadt = ’Salzburg’ AND Vorname=’Clara’ K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Abfragen einschränken III UNION vereinigt Ergebnisse K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Abfragen einschränken III UNION vereinigt Ergebnisse (SELECT Name FROM KundInnen WHERE Stadt =’Salzburg’) UNION (SELECT Name FROM KundInnen WHERE Stadt = ’Wien’) K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Ergebnisse einschränken IV SELECT DISTINCT gibt nur unterschiedliche Ergebnisse aus K. Puschke phpMySQL
mit DB-Anbindung Einführung Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Ergebnisse einschränken IV SELECT DISTINCT gibt nur unterschiedliche Ergebnisse aus SELECT DISTINCT Stadt FROM KundInnen K. Puschke phpMySQL
mit DB-Anbindung Datenbankverbindung Webseiten mit Datenbankinhalten SQL Injection Outline 1 Erste Schritte 2 Grundbegriffe des Web 3 PHP Programmierung 4 MySQL Datenbanken 5 Website mit Datenbankanbindung Datenbankverbindung Webseiten mit Datenbankinhalten SQL Injection K. Puschke phpMySQL
mit DB-Anbindung Datenbankverbindung Webseiten mit Datenbankinhalten SQL Injection Datenbankverbindung vor Verwendung der Datenbank muß eine Verbindung zum Datenbankserver aufgebaut werden K. Puschke phpMySQL
mit DB-Anbindung Datenbankverbindung Webseiten mit Datenbankinhalten SQL Injection Datenbankverbindung vor Verwendung der Datenbank muß eine Verbindung zum Datenbankserver aufgebaut werden Verbindungsaufbau kann fehlschlagen K. Puschke phpMySQL
mit DB-Anbindung Datenbankverbindung Webseiten mit Datenbankinhalten SQL Injection Datenbankverbindung vor Verwendung der Datenbank muß eine Verbindung zum Datenbankserver aufgebaut werden Verbindungsaufbau kann fehlschlagen Datenbankserver down, Firewall falsch konfiguriert, Verbindungsdaten fehlerhaft,. . . K. Puschke phpMySQL
mit DB-Anbindung Datenbankverbindung Webseiten mit Datenbankinhalten SQL Injection Datenbankverbindung vor Verwendung der Datenbank muß eine Verbindung zum Datenbankserver aufgebaut werden Verbindungsaufbau kann fehlschlagen Datenbankserver down, Firewall falsch konfiguriert, Verbindungsdaten fehlerhaft,. . . Fehlerfall berücksichtigen (Meldung und Programmabbruch,. . . ) K. Puschke phpMySQL
mit DB-Anbindung Datenbankverbindung Webseiten mit Datenbankinhalten SQL Injection Datenbankverbindung vor Verwendung der Datenbank muß eine Verbindung zum Datenbankserver aufgebaut werden Verbindungsaufbau kann fehlschlagen Datenbankserver down, Firewall falsch konfiguriert, Verbindungsdaten fehlerhaft,. . . Fehlerfall berücksichtigen (Meldung und Programmabbruch,. . . ) Verbindung kann für mehrere Datenbankabfragen benutzt werden K. Puschke phpMySQL
mit DB-Anbindung Datenbankverbindung Webseiten mit Datenbankinhalten SQL Injection Datenbankverbindung vor Verwendung der Datenbank muß eine Verbindung zum Datenbankserver aufgebaut werden Verbindungsaufbau kann fehlschlagen Datenbankserver down, Firewall falsch konfiguriert, Verbindungsdaten fehlerhaft,. . . Fehlerfall berücksichtigen (Meldung und Programmabbruch,. . . ) Verbindung kann für mehrere Datenbankabfragen benutzt werden nicht mehr benötigte Verbindung kann manuell getrennt werden K. Puschke phpMySQL
mit DB-Anbindung Datenbankverbindung Webseiten mit Datenbankinhalten SQL Injection Datenbankverbindung vor Verwendung der Datenbank muß eine Verbindung zum Datenbankserver aufgebaut werden Verbindungsaufbau kann fehlschlagen Datenbankserver down, Firewall falsch konfiguriert, Verbindungsdaten fehlerhaft,. . . Fehlerfall berücksichtigen (Meldung und Programmabbruch,. . . ) Verbindung kann für mehrere Datenbankabfragen benutzt werden nicht mehr benötigte Verbindung kann manuell getrennt werden nach Ende des php-Skripts wird automatisch getrennt K. Puschke phpMySQL
mit DB-Anbindung Datenbankverbindung Webseiten mit Datenbankinhalten SQL Injection Datenbankinhalt Datenbankinhalte sind u.U. unsicher K. Puschke phpMySQL
mit DB-Anbindung Datenbankverbindung Webseiten mit Datenbankinhalten SQL Injection Datenbankinhalt Datenbankinhalte sind u.U. unsicher Ergebnisse von Datenbankabfragen ggf. vor weiterer Verwendung unschädlich machen K. Puschke phpMySQL
mit DB-Anbindung Datenbankverbindung Webseiten mit Datenbankinhalten SQL Injection Datenbankinhalt Datenbankinhalte sind u.U. unsicher Ergebnisse von Datenbankabfragen ggf. vor weiterer Verwendung unschädlich machen geeignet escapen K. Puschke phpMySQL
mit DB-Anbindung Datenbankverbindung Webseiten mit Datenbankinhalten SQL Injection SQL Injection Beispiel SELECT user,pw FROM users WHERE user=’$user’ and pw=’$pw’ K. Puschke phpMySQL
mit DB-Anbindung Datenbankverbindung Webseiten mit Datenbankinhalten SQL Injection SQL Injection Beispiel SELECT user,pw FROM users WHERE user=’$user’ and pw=’$pw’ $pw="x’ OR ’’=’" K. Puschke phpMySQL
mit DB-Anbindung Datenbankverbindung Webseiten mit Datenbankinhalten SQL Injection SQL Injection Beispiel SELECT user,pw FROM users WHERE user=’$user’ and pw=’$pw’ $pw="x’ OR ’’=’" SELECT user,pw FROM users WHERE user=’foo42’ and pw=’x’ OR ’’=’’ K. Puschke phpMySQL
mit DB-Anbindung Datenbankverbindung Webseiten mit Datenbankinhalten SQL Injection SQL Injection Beispiel SELECT user,pw FROM users WHERE user=’$user’ and pw=’$pw’ $pw="x’ OR ’’=’" SELECT user,pw FROM users WHERE user=’foo42’ and pw=’x’ OR ’’=’’ Abwehr Eingaben für SQL escapen oder K. Puschke phpMySQL
mit DB-Anbindung Datenbankverbindung Webseiten mit Datenbankinhalten SQL Injection SQL Injection Beispiel SELECT user,pw FROM users WHERE user=’$user’ and pw=’$pw’ $pw="x’ OR ’’=’" SELECT user,pw FROM users WHERE user=’foo42’ and pw=’x’ OR ’’=’’ Abwehr Eingaben für SQL escapen oder besser: Prepared Statements K. Puschke phpMySQL
mit DB-Anbindung Datenbankverbindung Webseiten mit Datenbankinhalten SQL Injection Prepared Statements trennen SQL-Logik und Dateneingabe K. Puschke phpMySQL
mit DB-Anbindung Datenbankverbindung Webseiten mit Datenbankinhalten SQL Injection Prepared Statements trennen SQL-Logik und Dateneingabe schützen dadurch vor SQL Injection Angriffen K. Puschke phpMySQL
mit DB-Anbindung Datenbankverbindung Webseiten mit Datenbankinhalten SQL Injection Prepared Statements trennen SQL-Logik und Dateneingabe schützen dadurch vor SQL Injection Angriffen zusätzliches escapen nicht erforderlich K. Puschke phpMySQL
mit DB-Anbindung Datenbankverbindung Webseiten mit Datenbankinhalten SQL Injection Prepared Statements trennen SQL-Logik und Dateneingabe schützen dadurch vor SQL Injection Angriffen zusätzliches escapen nicht erforderlich ggf. Performanzgewinn K. Puschke phpMySQL