webentwicklung mit php und mysql

200
Erste Schritte Grundbegriffe des Web PHP Programmierung MySQL Datenbanken Website mit DB-Anbindung Webentwicklung mit PHP und MySQL Dr. Kerstin Puschke Workshop, Uni Salzburg September 2012 K. Puschke phpMySQL

Upload: kerstin-puschke

Post on 24-May-2015

2.379 views

Category:

Documents


2 download

DESCRIPTION

Einstiegskurs PHP/MySQL. Die Folien enthalten nicht die zugehörigen Übungsaufgaben und Codebeispiele.

TRANSCRIPT

Page 1: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Webentwicklung mit PHP und MySQL

Dr. Kerstin Puschke

Workshop, Uni Salzburg

September 2012

K. Puschke phpMySQL

Page 2: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Lizenz

LizenzDieser Text steht unter einer Creative CommonsAttribution-Share Alike 3.0 Germany Lizenz, siehehttp://creativecommons.org/licenses/by-sa/3.0/de/

K. Puschke phpMySQL

Page 3: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Hinweis

Materialien

Codebeispiele und Übungsaufgaben mit Erläuterungen undlinks im Wiki!

K. Puschke phpMySQL

Page 4: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Outline

1 Erste Schritte

2 Grundbegriffe des Web

3 PHP Programmierung

4 MySQL Datenbanken

5 Website mit Datenbankanbindung

K. Puschke phpMySQL

Page 5: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Mit PHP-Dateien arbeitenPHP

Outline

1 Erste SchritteMit PHP-Dateien arbeitenPHP

2 Grundbegriffe des Web

3 PHP Programmierung

4 MySQL Datenbanken

5 Website mit Datenbankanbindung

K. Puschke phpMySQL

Page 6: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Mit PHP-Dateien arbeitenPHP

PHP-Beispiel.php-Datei

<body><h1>Hallo</h1><p><?php

echo "Hallo, Welt!";?>

</p></body>

K. Puschke phpMySQL

Page 7: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Mit PHP-Dateien arbeitenPHP

PHP-BeispielAusgeliefertes HTML

<body><h1>Hallo</h1><p>Hallo, Welt!</p>

</body>

K. Puschke phpMySQL

Page 8: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Mit PHP-Dateien arbeitenPHP

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 beachtetGroß- und Kleinschreibung relevant

K. Puschke phpMySQL

Page 9: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Mit PHP-Dateien arbeitenPHP

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 beachtetGroß- und Kleinschreibung relevant

K. Puschke phpMySQL

Page 10: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Mit PHP-Dateien arbeitenPHP

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 beachtetGroß- und Kleinschreibung relevant

K. Puschke phpMySQL

Page 11: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Mit PHP-Dateien arbeitenPHP

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

Page 12: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Mit PHP-Dateien arbeitenPHP

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 beachtetGroß- und Kleinschreibung relevant

K. Puschke phpMySQL

Page 13: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Mit PHP-Dateien arbeitenPHP

Kommentare

Kommentare werden nicht ausgeführt

dienen zur Erläuterung des Programms oder helfen beimDebuggen# oder // kommentieren den Rest der Zeile ausecho “Hallo, Welt”; # Erklärung

Blockkommentare mit /* ...*/

Vorsicht: PHP ignoriert PHP-Kommentare, HTML ignoriertHTML-Kommentare

K. Puschke phpMySQL

Page 14: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Mit PHP-Dateien arbeitenPHP

Kommentare

Kommentare werden nicht ausgeführtdienen zur Erläuterung des Programms oder helfen beimDebuggen

# oder // kommentieren den Rest der Zeile ausecho “Hallo, Welt”; # Erklärung

Blockkommentare mit /* ...*/

Vorsicht: PHP ignoriert PHP-Kommentare, HTML ignoriertHTML-Kommentare

K. Puschke phpMySQL

Page 15: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Mit PHP-Dateien arbeitenPHP

Kommentare

Kommentare werden nicht ausgeführtdienen zur Erläuterung des Programms oder helfen beimDebuggen# oder // kommentieren den Rest der Zeile ausecho “Hallo, Welt”; # Erklärung

Blockkommentare mit /* ...*/

Vorsicht: PHP ignoriert PHP-Kommentare, HTML ignoriertHTML-Kommentare

K. Puschke phpMySQL

Page 16: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Mit PHP-Dateien arbeitenPHP

Kommentare

Kommentare werden nicht ausgeführtdienen zur Erläuterung des Programms oder helfen beimDebuggen# oder // kommentieren den Rest der Zeile ausecho “Hallo, Welt”; # Erklärung

Blockkommentare mit /* ...*/

Vorsicht: PHP ignoriert PHP-Kommentare, HTML ignoriertHTML-Kommentare

K. Puschke phpMySQL

Page 17: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Mit PHP-Dateien arbeitenPHP

Kommentare

Kommentare werden nicht ausgeführtdienen zur Erläuterung des Programms oder helfen beimDebuggen# oder // kommentieren den Rest der Zeile ausecho “Hallo, Welt”; # Erklärung

Blockkommentare mit /* ...*/

Vorsicht: PHP ignoriert PHP-Kommentare, HTML ignoriertHTML-Kommentare

K. Puschke phpMySQL

Page 18: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Mit PHP-Dateien arbeitenPHP

Formatierung

Good PracticeGuter Code ist nicht nur maschinen-, sondern auchmenschenlesbar!

aussgekräftige Kommentare

K. Puschke phpMySQL

Page 19: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Mit PHP-Dateien arbeitenPHP

Formatierung

Good PracticeGuter Code ist nicht nur maschinen-, sondern auchmenschenlesbar!

aussgekräftige Kommentare

K. Puschke phpMySQL

Page 20: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Outline

1 Erste Schritte

2 Grundbegriffe des WebBegriffsklärungStatische WebseitenDynamische Webseiten

3 PHP Programmierung

4 MySQL Datenbanken

5 Website mit Datenbankanbindung

K. Puschke phpMySQL

Page 21: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Grundbegriffe

WWW : World Wide Web - ein Netzwerk verlinkterDokumente (Webseiten), nutzbar via Internet

HTTP: Hypertext Transfer Protocol - ein Protokoll zumTransport von Inhalten über das WWWHTML: Hypertext Markup Language - eineAuszeichnungssprache für WebseitenPHP: PHP Hypertext Preprocessor - eineProgrammierspracheMySQL: ein Datenbanksystem

K. Puschke phpMySQL

Page 22: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Grundbegriffe

WWW : World Wide Web - ein Netzwerk verlinkterDokumente (Webseiten), nutzbar via InternetHTTP: Hypertext Transfer Protocol - ein Protokoll zumTransport von Inhalten über das WWW

HTML: Hypertext Markup Language - eineAuszeichnungssprache für WebseitenPHP: PHP Hypertext Preprocessor - eineProgrammierspracheMySQL: ein Datenbanksystem

K. Puschke phpMySQL

Page 23: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Grundbegriffe

WWW : World Wide Web - ein Netzwerk verlinkterDokumente (Webseiten), nutzbar via InternetHTTP: Hypertext Transfer Protocol - ein Protokoll zumTransport von Inhalten über das WWWHTML: Hypertext Markup Language - eineAuszeichnungssprache für Webseiten

PHP: PHP Hypertext Preprocessor - eineProgrammierspracheMySQL: ein Datenbanksystem

K. Puschke phpMySQL

Page 24: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Grundbegriffe

WWW : World Wide Web - ein Netzwerk verlinkterDokumente (Webseiten), nutzbar via InternetHTTP: Hypertext Transfer Protocol - ein Protokoll zumTransport von Inhalten über das WWWHTML: Hypertext Markup Language - eineAuszeichnungssprache für WebseitenPHP: PHP Hypertext Preprocessor - eineProgrammiersprache

MySQL: ein Datenbanksystem

K. Puschke phpMySQL

Page 25: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Grundbegriffe

WWW : World Wide Web - ein Netzwerk verlinkterDokumente (Webseiten), nutzbar via InternetHTTP: Hypertext Transfer Protocol - ein Protokoll zumTransport von Inhalten über das WWWHTML: Hypertext Markup Language - eineAuszeichnungssprache für WebseitenPHP: PHP Hypertext Preprocessor - eineProgrammierspracheMySQL: ein Datenbanksystem

K. Puschke phpMySQL

Page 26: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Client und Server

Client

Software, die Inhalte anfordert und verarbeiteti.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . )

Webserver

Software, die Webdienste anbietetd.h. Inhalte (z.B. Webseiten) per HTTP an Client ausliefertz.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

Page 27: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Client und Server

ClientSoftware, die Inhalte anfordert und verarbeitet

i.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . )Webserver

Software, die Webdienste anbietetd.h. Inhalte (z.B. Webseiten) per HTTP an Client ausliefertz.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

Page 28: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Client und Server

ClientSoftware, die Inhalte anfordert und verarbeiteti.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . )

Webserver

Software, die Webdienste anbietetd.h. Inhalte (z.B. Webseiten) per HTTP an Client ausliefertz.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

Page 29: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Client und Server

ClientSoftware, die Inhalte anfordert und verarbeiteti.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . )

Webserver

Software, die Webdienste anbietetd.h. Inhalte (z.B. Webseiten) per HTTP an Client ausliefertz.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

Page 30: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Client und Server

ClientSoftware, die Inhalte anfordert und verarbeiteti.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . )

WebserverSoftware, die Webdienste anbietetd.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

Page 31: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Client und Server

ClientSoftware, die Inhalte anfordert und verarbeiteti.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . )

WebserverSoftware, die Webdienste anbietetd.h. Inhalte (z.B. Webseiten) per HTTP an Client ausliefertz.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

Page 32: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Client und Server

ClientSoftware, die Inhalte anfordert und verarbeiteti.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . )

WebserverSoftware, die Webdienste anbietetd.h. Inhalte (z.B. Webseiten) per HTTP an Client ausliefertz.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

Page 33: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Client und Server

ClientSoftware, die Inhalte anfordert und verarbeiteti.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . )

WebserverSoftware, die Webdienste anbietetd.h. Inhalte (z.B. Webseiten) per HTTP an Client ausliefertz.B. Apache Webserver,. . .

DatenbankserverSoftware, die Datenbankdienste (ein Datenbanksystem)anbietet

manchmal auch gemeint:der Rechner, auf dem die jeweilige Software läuft

K. Puschke phpMySQL

Page 34: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Client und Server

ClientSoftware, die Inhalte anfordert und verarbeiteti.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . )

WebserverSoftware, die Webdienste anbietetd.h. Inhalte (z.B. Webseiten) per HTTP an Client ausliefertz.B. Apache Webserver,. . .

DatenbankserverSoftware, die Datenbankdienste (ein Datenbanksystem)anbietet

manchmal auch gemeint:der Rechner, auf dem die jeweilige Software läuft

K. Puschke phpMySQL

Page 35: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Statische Webseiten

Inhalte liegen als HTML-Dateien bereits fertig auf demServer vor

jeder Client bekommt jederzeit dieselben Inhalteausgeliefert

K. Puschke phpMySQL

Page 36: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Statische Webseiten

Inhalte liegen als HTML-Dateien bereits fertig auf demServer vorjeder Client bekommt jederzeit dieselben Inhalteausgeliefert

K. Puschke phpMySQL

Page 37: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Statische WebseitenAblauf

Client (Browser) fordert (per HTTP) Webseite an

Webserver erhält AnfrageWebserver findet HTML-DateiWebserver liefert HTML (per HTTP) an Client ausClient verarbeitet HTML,Browser stellt Webseite dar

K. Puschke phpMySQL

Page 38: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Statische WebseitenAblauf

Client (Browser) fordert (per HTTP) Webseite anWebserver erhält Anfrage

Webserver findet HTML-DateiWebserver liefert HTML (per HTTP) an Client ausClient verarbeitet HTML,Browser stellt Webseite dar

K. Puschke phpMySQL

Page 39: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Statische WebseitenAblauf

Client (Browser) fordert (per HTTP) Webseite anWebserver erhält AnfrageWebserver findet HTML-Datei

Webserver liefert HTML (per HTTP) an Client ausClient verarbeitet HTML,Browser stellt Webseite dar

K. Puschke phpMySQL

Page 40: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Statische WebseitenAblauf

Client (Browser) fordert (per HTTP) Webseite anWebserver erhält AnfrageWebserver findet HTML-DateiWebserver liefert HTML (per HTTP) an Client aus

Client verarbeitet HTML,Browser stellt Webseite dar

K. Puschke phpMySQL

Page 41: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Statische WebseitenAblauf

Client (Browser) fordert (per HTTP) Webseite anWebserver erhält AnfrageWebserver findet HTML-DateiWebserver liefert HTML (per HTTP) an Client ausClient verarbeitet HTML,Browser stellt Webseite dar

K. Puschke phpMySQL

Page 42: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Dynamische Webseite

Inhalte werden dynamisch ermittelt

clientseitig im Browser (javascript)serverseitig (php, ruby, perl,. . . )

K. Puschke phpMySQL

Page 43: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Dynamische Webseite

Inhalte werden dynamisch ermitteltclientseitig im Browser (javascript)

serverseitig (php, ruby, perl,. . . )

K. Puschke phpMySQL

Page 44: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Dynamische Webseite

Inhalte werden dynamisch ermitteltclientseitig im Browser (javascript)serverseitig (php, ruby, perl,. . . )

K. Puschke phpMySQL

Page 45: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Dynamische Webseite mit PHPAblauf

Client (Browser) fordert Webseite an

Webserver findet PHP-DateiPHP-Code

wird ausgeführtinteragiert ggf. mit Datenbanksystemerzeugt ggf. HTML

Webserver liefert HTML an Client ausClient verarbeitet HTMLBrowser stellt Webseite dar

K. Puschke phpMySQL

Page 46: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Dynamische Webseite mit PHPAblauf

Client (Browser) fordert Webseite anWebserver findet PHP-Datei

PHP-Code

wird ausgeführtinteragiert ggf. mit Datenbanksystemerzeugt ggf. HTML

Webserver liefert HTML an Client ausClient verarbeitet HTMLBrowser stellt Webseite dar

K. Puschke phpMySQL

Page 47: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Dynamische Webseite mit PHPAblauf

Client (Browser) fordert Webseite anWebserver findet PHP-DateiPHP-Code

wird ausgeführtinteragiert ggf. mit Datenbanksystemerzeugt ggf. HTML

Webserver liefert HTML an Client ausClient verarbeitet HTMLBrowser stellt Webseite dar

K. Puschke phpMySQL

Page 48: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Dynamische Webseite mit PHPAblauf

Client (Browser) fordert Webseite anWebserver findet PHP-DateiPHP-Code

wird ausgeführt

interagiert ggf. mit Datenbanksystemerzeugt ggf. HTML

Webserver liefert HTML an Client ausClient verarbeitet HTMLBrowser stellt Webseite dar

K. Puschke phpMySQL

Page 49: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Dynamische Webseite mit PHPAblauf

Client (Browser) fordert Webseite anWebserver findet PHP-DateiPHP-Code

wird ausgeführtinteragiert ggf. mit Datenbanksystem

erzeugt ggf. HTML

Webserver liefert HTML an Client ausClient verarbeitet HTMLBrowser stellt Webseite dar

K. Puschke phpMySQL

Page 50: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Dynamische Webseite mit PHPAblauf

Client (Browser) fordert Webseite anWebserver findet PHP-DateiPHP-Code

wird ausgeführtinteragiert ggf. mit Datenbanksystemerzeugt ggf. HTML

Webserver liefert HTML an Client ausClient verarbeitet HTMLBrowser stellt Webseite dar

K. Puschke phpMySQL

Page 51: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Dynamische Webseite mit PHPAblauf

Client (Browser) fordert Webseite anWebserver findet PHP-DateiPHP-Code

wird ausgeführtinteragiert ggf. mit Datenbanksystemerzeugt ggf. HTML

Webserver liefert HTML an Client aus

Client verarbeitet HTMLBrowser stellt Webseite dar

K. Puschke phpMySQL

Page 52: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

Dynamische Webseite mit PHPAblauf

Client (Browser) fordert Webseite anWebserver findet PHP-DateiPHP-Code

wird ausgeführtinteragiert ggf. mit Datenbanksystemerzeugt ggf. HTML

Webserver liefert HTML an Client ausClient verarbeitet HTMLBrowser stellt Webseite dar

K. Puschke phpMySQL

Page 53: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

ArchitekturDrei-Schichten-Architektur

Datenbanksystem

Datenspeicherung und DatenverwaltungWebserver

Anwendungslogik und Darstellung

Client (Browser)

Anfragen stellen, Anworten verarbeiten

K. Puschke phpMySQL

Page 54: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

ArchitekturDrei-Schichten-Architektur

DatenbanksystemDatenspeicherung und Datenverwaltung

Webserver

Anwendungslogik und Darstellung

Client (Browser)

Anfragen stellen, Anworten verarbeiten

K. Puschke phpMySQL

Page 55: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

ArchitekturDrei-Schichten-Architektur

DatenbanksystemDatenspeicherung und Datenverwaltung

Webserver

Anwendungslogik und DarstellungClient (Browser)

Anfragen stellen, Anworten verarbeiten

K. Puschke phpMySQL

Page 56: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

ArchitekturDrei-Schichten-Architektur

DatenbanksystemDatenspeicherung und Datenverwaltung

WebserverAnwendungslogik und Darstellung

Client (Browser)

Anfragen stellen, Anworten verarbeiten

K. Puschke phpMySQL

Page 57: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

ArchitekturDrei-Schichten-Architektur

DatenbanksystemDatenspeicherung und Datenverwaltung

WebserverAnwendungslogik und Darstellung

Client (Browser)

Anfragen stellen, Anworten verarbeiten

K. Puschke phpMySQL

Page 58: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

BegriffsklärungStatische WebseitenDynamische Webseiten

ArchitekturDrei-Schichten-Architektur

DatenbanksystemDatenspeicherung und Datenverwaltung

WebserverAnwendungslogik und Darstellung

Client (Browser)Anfragen stellen, Anworten verarbeiten

K. Puschke phpMySQL

Page 59: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Outline

1 Erste Schritte

2 Grundbegriffe des Web

3 PHP ProgrammierungSkalare DatenAblaufsteuerungUserinput verarbeiten

4 MySQL Datenbanken

5 Website mit Datenbankanbindung

K. Puschke phpMySQL

Page 60: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Skalare Datentypen

integerganze Zahl, z.B. 42

floatreelle Zahl, z.B. 3.14stringZeichenkette, z.B. “Hallo, Welt!” oder “7”booleantrue oder falsephp konvertiert ggf. automatisch

K. Puschke phpMySQL

Page 61: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Skalare Datentypen

integerganze Zahl, z.B. 42floatreelle Zahl, z.B. 3.14

stringZeichenkette, z.B. “Hallo, Welt!” oder “7”booleantrue oder falsephp konvertiert ggf. automatisch

K. Puschke phpMySQL

Page 62: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Skalare Datentypen

integerganze Zahl, z.B. 42floatreelle Zahl, z.B. 3.14stringZeichenkette, z.B. “Hallo, Welt!” oder “7”

booleantrue oder falsephp konvertiert ggf. automatisch

K. Puschke phpMySQL

Page 63: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Skalare Datentypen

integerganze Zahl, z.B. 42floatreelle Zahl, z.B. 3.14stringZeichenkette, z.B. “Hallo, Welt!” oder “7”booleantrue oder false

php konvertiert ggf. automatisch

K. Puschke phpMySQL

Page 64: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Skalare Datentypen

integerganze Zahl, z.B. 42floatreelle Zahl, z.B. 3.14stringZeichenkette, z.B. “Hallo, Welt!” oder “7”booleantrue oder falsephp konvertiert ggf. automatisch

K. Puschke phpMySQL

Page 65: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Skalarvariablen

Variablennamen beginnen mit $:$username, $NachName, $Telefon2,...

keine explizite Initialisierung oder Deklaration nötigZuweisungsoperator =

$username = “alice”;$begruessung = “Hallo, $username!”;$begruessung = “$begruessung HerzlichWillkommen!”;

K. Puschke phpMySQL

Page 66: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Skalarvariablen

Variablennamen beginnen mit $:$username, $NachName, $Telefon2,...

keine explizite Initialisierung oder Deklaration nötig

Zuweisungsoperator =

$username = “alice”;$begruessung = “Hallo, $username!”;$begruessung = “$begruessung HerzlichWillkommen!”;

K. Puschke phpMySQL

Page 67: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Skalarvariablen

Variablennamen beginnen mit $:$username, $NachName, $Telefon2,...

keine explizite Initialisierung oder Deklaration nötigZuweisungsoperator =

$username = “alice”;$begruessung = “Hallo, $username!”;$begruessung = “$begruessung HerzlichWillkommen!”;

K. Puschke phpMySQL

Page 68: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Skalarvariablen

Variablennamen beginnen mit $:$username, $NachName, $Telefon2,...

keine explizite Initialisierung oder Deklaration nötigZuweisungsoperator =

$username = “alice”;

$begruessung = “Hallo, $username!”;$begruessung = “$begruessung HerzlichWillkommen!”;

K. Puschke phpMySQL

Page 69: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Skalarvariablen

Variablennamen beginnen mit $:$username, $NachName, $Telefon2,...

keine explizite Initialisierung oder Deklaration nötigZuweisungsoperator =

$username = “alice”;$begruessung = “Hallo, $username!”;

$begruessung = “$begruessung HerzlichWillkommen!”;

K. Puschke phpMySQL

Page 70: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Skalarvariablen

Variablennamen beginnen mit $:$username, $NachName, $Telefon2,...

keine explizite Initialisierung oder Deklaration nötigZuweisungsoperator =

$username = “alice”;$begruessung = “Hallo, $username!”;$begruessung = “$begruessung HerzlichWillkommen!”;

K. Puschke phpMySQL

Page 71: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Variablen

Good PracticeGuter Code ist nicht nur maschinen-, sondern auchmenschenlesbar!

aussagekräftige Variablennamen wählen

K. Puschke phpMySQL

Page 72: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Variablen

Good PracticeGuter Code ist nicht nur maschinen-, sondern auchmenschenlesbar!

aussagekräftige Variablennamen wählen

K. Puschke phpMySQL

Page 73: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Ablaufsteuerung

Good PracticeIn längeren if...elseif...-Konstrukten einen else-Zweigvorsehen!

Abfangen unvorhergesehener Ereignisseggf. sogar Programmabbruch mit Fehlermeldung

K. Puschke phpMySQL

Page 74: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Ablaufsteuerung

Good PracticeIn längeren if...elseif...-Konstrukten einen else-Zweigvorsehen!

Abfangen unvorhergesehener Ereignisse

ggf. sogar Programmabbruch mit Fehlermeldung

K. Puschke phpMySQL

Page 75: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Ablaufsteuerung

Good PracticeIn längeren if...elseif...-Konstrukten einen else-Zweigvorsehen!

Abfangen unvorhergesehener Ereignisseggf. sogar Programmabbruch mit Fehlermeldung

K. Puschke phpMySQL

Page 76: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Formatierung

Good PracticeGuter Code ist nicht nur maschinen-, sondern auchmenschenlesbar!

EinrückungenLeerzeilenZeilenumbrücheKlammern verwenden in langen, komplexen Ausdrücken

K. Puschke phpMySQL

Page 77: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Formatierung

Good PracticeGuter Code ist nicht nur maschinen-, sondern auchmenschenlesbar!

Einrückungen

LeerzeilenZeilenumbrücheKlammern verwenden in langen, komplexen Ausdrücken

K. Puschke phpMySQL

Page 78: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Formatierung

Good PracticeGuter Code ist nicht nur maschinen-, sondern auchmenschenlesbar!

EinrückungenLeerzeilen

ZeilenumbrücheKlammern verwenden in langen, komplexen Ausdrücken

K. Puschke phpMySQL

Page 79: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Formatierung

Good PracticeGuter Code ist nicht nur maschinen-, sondern auchmenschenlesbar!

EinrückungenLeerzeilenZeilenumbrüche

Klammern verwenden in langen, komplexen Ausdrücken

K. Puschke phpMySQL

Page 80: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Formatierung

Good PracticeGuter Code ist nicht nur maschinen-, sondern auchmenschenlesbar!

EinrückungenLeerzeilenZeilenumbrücheKlammern verwenden in langen, komplexen Ausdrücken

K. Puschke phpMySQL

Page 81: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

FormulareGET 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 undeinfach geändert werden (bookmarks, history)

GET und POST sind unverschlüsselt und user könnenbeliebige Daten sendenFaustregel:

Daten dienen nur der Ablaufsteuerung (z.B. Anzeigebestimmter Produktkategorie): GETDaten weitergehend benötigt (z.B. Bestellung in Datenbankschreiben): POST

K. Puschke phpMySQL

Page 82: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

FormulareGET 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 undeinfach geändert werden (bookmarks, history)

GET und POST sind unverschlüsselt und user könnenbeliebige Daten sendenFaustregel:

Daten dienen nur der Ablaufsteuerung (z.B. Anzeigebestimmter Produktkategorie): GETDaten weitergehend benötigt (z.B. Bestellung in Datenbankschreiben): POST

K. Puschke phpMySQL

Page 83: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

FormulareGET 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 undeinfach geändert werden (bookmarks, history)

GET und POST sind unverschlüsselt und user könnenbeliebige Daten sendenFaustregel:

Daten dienen nur der Ablaufsteuerung (z.B. Anzeigebestimmter Produktkategorie): GETDaten weitergehend benötigt (z.B. Bestellung in Datenbankschreiben): POST

K. Puschke phpMySQL

Page 84: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

FormulareGET 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 undeinfach geändert werden (bookmarks, history)

GET und POST sind unverschlüsselt und user könnenbeliebige Daten senden

Faustregel:

Daten dienen nur der Ablaufsteuerung (z.B. Anzeigebestimmter Produktkategorie): GETDaten weitergehend benötigt (z.B. Bestellung in Datenbankschreiben): POST

K. Puschke phpMySQL

Page 85: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

FormulareGET 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 undeinfach geändert werden (bookmarks, history)

GET und POST sind unverschlüsselt und user könnenbeliebige Daten sendenFaustregel:

Daten dienen nur der Ablaufsteuerung (z.B. Anzeigebestimmter Produktkategorie): GETDaten weitergehend benötigt (z.B. Bestellung in Datenbankschreiben): POST

K. Puschke phpMySQL

Page 86: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

FormulareGET 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 undeinfach geändert werden (bookmarks, history)

GET und POST sind unverschlüsselt und user könnenbeliebige Daten sendenFaustregel:

Daten dienen nur der Ablaufsteuerung (z.B. Anzeigebestimmter Produktkategorie): GET

Daten weitergehend benötigt (z.B. Bestellung in Datenbankschreiben): POST

K. Puschke phpMySQL

Page 87: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

FormulareGET 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 undeinfach geändert werden (bookmarks, history)

GET und POST sind unverschlüsselt und user könnenbeliebige Daten sendenFaustregel:

Daten dienen nur der Ablaufsteuerung (z.B. Anzeigebestimmter Produktkategorie): GETDaten weitergehend benötigt (z.B. Bestellung in Datenbankschreiben): POST

K. Puschke phpMySQL

Page 88: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

XSSCross-Site Scripting

verbreitete Sicherheitslücke

Opfer auf präparierte links locken:example.com?name=<script>boeses_java_script</script>persistentes XSS: Schadcode in die Datenbank schreiben

K. Puschke phpMySQL

Page 89: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

XSSCross-Site Scripting

verbreitete SicherheitslückeOpfer auf präparierte links locken:example.com?name=<script>boeses_java_script</script>

persistentes XSS: Schadcode in die Datenbank schreiben

K. Puschke phpMySQL

Page 90: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

XSSCross-Site Scripting

verbreitete SicherheitslückeOpfer auf präparierte links locken:example.com?name=<script>boeses_java_script</script>persistentes XSS: Schadcode in die Datenbank schreiben

K. Puschke phpMySQL

Page 91: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Userinput

WARNINGALL Input is EVIL!

user geben unabsichtlich Unerwartetes einuser geben absichtlich Unerwünschtes einEingaben können sehr großen Schaden anrichten

K. Puschke phpMySQL

Page 92: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Userinput

WARNINGALL Input is EVIL!

user geben unabsichtlich Unerwartetes ein

user geben absichtlich Unerwünschtes einEingaben können sehr großen Schaden anrichten

K. Puschke phpMySQL

Page 93: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Userinput

WARNINGALL Input is EVIL!

user geben unabsichtlich Unerwartetes einuser geben absichtlich Unerwünschtes ein

Eingaben können sehr großen Schaden anrichten

K. Puschke phpMySQL

Page 94: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Userinput

WARNINGALL Input is EVIL!

user geben unabsichtlich Unerwartetes einuser geben absichtlich Unerwünschtes einEingaben können sehr großen Schaden anrichten

K. Puschke phpMySQL

Page 95: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Userinput

WARNINGAll Input is Evil!

user benutzen nicht das Formular, erzeugen diePOST/GET-Daten selbstdeshalb: auch Eingaben prüfen, die vermeintlichvorgegebene Werte haben (radiobuttons, menus)

K. Puschke phpMySQL

Page 96: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Userinput

WARNINGAll Input is Evil!

user benutzen nicht das Formular, erzeugen diePOST/GET-Daten selbst

deshalb: auch Eingaben prüfen, die vermeintlichvorgegebene Werte haben (radiobuttons, menus)

K. Puschke phpMySQL

Page 97: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Userinput

WARNINGAll Input is Evil!

user benutzen nicht das Formular, erzeugen diePOST/GET-Daten selbstdeshalb: auch Eingaben prüfen, die vermeintlichvorgegebene Werte haben (radiobuttons, menus)

K. Puschke phpMySQL

Page 98: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Eingaben unschädlich machenEingaben filtern

Whitelist: explizit festlegen, welche Zeichen zulässig sind(z.B. nur Buchstaben), alles andere entfernen

Blacklist: explizit festlegen, welche Zeichen unzulässigsind (z.B. <,>,/), diese entfernenbei Erstellung der Listen kann leicht etwas übersehenwerden - Filterungen sind daher fehleranfällig!

K. Puschke phpMySQL

Page 99: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Eingaben unschädlich machenEingaben filtern

Whitelist: explizit festlegen, welche Zeichen zulässig sind(z.B. nur Buchstaben), alles andere entfernenBlacklist: explizit festlegen, welche Zeichen unzulässigsind (z.B. <,>,/), diese entfernen

bei Erstellung der Listen kann leicht etwas übersehenwerden - Filterungen sind daher fehleranfällig!

K. Puschke phpMySQL

Page 100: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Eingaben unschädlich machenEingaben filtern

Whitelist: explizit festlegen, welche Zeichen zulässig sind(z.B. nur Buchstaben), alles andere entfernenBlacklist: explizit festlegen, welche Zeichen unzulässigsind (z.B. <,>,/), diese entfernenbei Erstellung der Listen kann leicht etwas übersehenwerden - Filterungen sind daher fehleranfällig!

K. Puschke phpMySQL

Page 101: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Eingaben unschädlich machenEscape/Maskieren

Eingaben vor der weiteren Verarbeitung escapen,d.h. gefährliche Zeichen maskieren

abhängig von der Art der weiteren VerarbeitungBeispiel: für Ausgabe von HTML gefährliche Zeichen inHTML-Entities umwandelngeeignete php-Funktionen vorhanden, keine Gefahr etwaszu vergessen - weniger fehleranfällig

K. Puschke phpMySQL

Page 102: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Eingaben unschädlich machenEscape/Maskieren

Eingaben vor der weiteren Verarbeitung escapen,d.h. gefährliche Zeichen maskierenabhängig von der Art der weiteren Verarbeitung

Beispiel: für Ausgabe von HTML gefährliche Zeichen inHTML-Entities umwandelngeeignete php-Funktionen vorhanden, keine Gefahr etwaszu vergessen - weniger fehleranfällig

K. Puschke phpMySQL

Page 103: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Eingaben unschädlich machenEscape/Maskieren

Eingaben vor der weiteren Verarbeitung escapen,d.h. gefährliche Zeichen maskierenabhängig von der Art der weiteren VerarbeitungBeispiel: für Ausgabe von HTML gefährliche Zeichen inHTML-Entities umwandeln

geeignete php-Funktionen vorhanden, keine Gefahr etwaszu vergessen - weniger fehleranfällig

K. Puschke phpMySQL

Page 104: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

Skalare DatenAblaufsteuerungUserinput verarbeiten

Eingaben unschädlich machenEscape/Maskieren

Eingaben vor der weiteren Verarbeitung escapen,d.h. gefährliche Zeichen maskierenabhängig von der Art der weiteren VerarbeitungBeispiel: für Ausgabe von HTML gefährliche Zeichen inHTML-Entities umwandelngeeignete php-Funktionen vorhanden, keine Gefahr etwaszu vergessen - weniger fehleranfällig

K. Puschke phpMySQL

Page 105: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Outline

1 Erste Schritte

2 Grundbegriffe des Web

3 PHP Programmierung

4 MySQL DatenbankenEinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

5 Website mit DatenbankanbindungK. Puschke phpMySQL

Page 106: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

DatenbanksystemDatenbank und Datenbankmanagementsystem

Datenbanksystem dient der Speicherung und Verwaltungvon Daten

besteht aus Datenbanken undDatenbankmanagementsystem (DBMS)

Datenbank: strukturiert abgelegte Daten

zu verwaltende Daten, z.B. AdressenDatenbankschema: Metadaten zur Datenbankdefinition

Datenbankmanagementsystem: Software zur Verwaltungder Daten

Datenbank definieren, erzeugen, manipulieren

K. Puschke phpMySQL

Page 107: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

DatenbanksystemDatenbank und Datenbankmanagementsystem

Datenbanksystem dient der Speicherung und Verwaltungvon Daten

besteht aus Datenbanken undDatenbankmanagementsystem (DBMS)

Datenbank: strukturiert abgelegte Daten

zu verwaltende Daten, z.B. AdressenDatenbankschema: Metadaten zur Datenbankdefinition

Datenbankmanagementsystem: Software zur Verwaltungder Daten

Datenbank definieren, erzeugen, manipulieren

K. Puschke phpMySQL

Page 108: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

DatenbanksystemDatenbank und Datenbankmanagementsystem

Datenbanksystem dient der Speicherung und Verwaltungvon Daten

besteht aus Datenbanken undDatenbankmanagementsystem (DBMS)

Datenbank: strukturiert abgelegte Daten

zu verwaltende Daten, z.B. AdressenDatenbankschema: Metadaten zur Datenbankdefinition

Datenbankmanagementsystem: Software zur Verwaltungder Daten

Datenbank definieren, erzeugen, manipulieren

K. Puschke phpMySQL

Page 109: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

DatenbanksystemDatenbank und Datenbankmanagementsystem

Datenbanksystem dient der Speicherung und Verwaltungvon Daten

besteht aus Datenbanken undDatenbankmanagementsystem (DBMS)

Datenbank: strukturiert abgelegte Datenzu verwaltende Daten, z.B. Adressen

Datenbankschema: Metadaten zur DatenbankdefinitionDatenbankmanagementsystem: Software zur Verwaltungder Daten

Datenbank definieren, erzeugen, manipulieren

K. Puschke phpMySQL

Page 110: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

DatenbanksystemDatenbank und Datenbankmanagementsystem

Datenbanksystem dient der Speicherung und Verwaltungvon Daten

besteht aus Datenbanken undDatenbankmanagementsystem (DBMS)

Datenbank: strukturiert abgelegte Datenzu verwaltende Daten, z.B. AdressenDatenbankschema: Metadaten zur Datenbankdefinition

Datenbankmanagementsystem: Software zur Verwaltungder Daten

Datenbank definieren, erzeugen, manipulieren

K. Puschke phpMySQL

Page 111: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

DatenbanksystemDatenbank und Datenbankmanagementsystem

Datenbanksystem dient der Speicherung und Verwaltungvon Daten

besteht aus Datenbanken undDatenbankmanagementsystem (DBMS)

Datenbank: strukturiert abgelegte Datenzu verwaltende Daten, z.B. AdressenDatenbankschema: Metadaten zur Datenbankdefinition

Datenbankmanagementsystem: Software zur Verwaltungder Daten

Datenbank definieren, erzeugen, manipulieren

K. Puschke phpMySQL

Page 112: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

DatenbanksystemDatenbank und Datenbankmanagementsystem

Datenbanksystem dient der Speicherung und Verwaltungvon Daten

besteht aus Datenbanken undDatenbankmanagementsystem (DBMS)

Datenbank: strukturiert abgelegte Datenzu verwaltende Daten, z.B. AdressenDatenbankschema: Metadaten zur Datenbankdefinition

Datenbankmanagementsystem: Software zur Verwaltungder Daten

Datenbank definieren, erzeugen, manipulieren

K. Puschke phpMySQL

Page 113: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

MySQL

DBMS

sehr verbreitet in Webanwendungenauch eingebettet in anderen Anwendungenschwedische Firma MySQL AB, dann Sun Microsystems,dann Übernahme durch Oraclekostenlose Community-Version, freie Software (GPL)kostenpflichtige Enterprise-VersionRelationales DBMS

K. Puschke phpMySQL

Page 114: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

MySQL

DBMSsehr verbreitet in Webanwendungen

auch eingebettet in anderen Anwendungenschwedische Firma MySQL AB, dann Sun Microsystems,dann Übernahme durch Oraclekostenlose Community-Version, freie Software (GPL)kostenpflichtige Enterprise-VersionRelationales DBMS

K. Puschke phpMySQL

Page 115: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

MySQL

DBMSsehr verbreitet in Webanwendungenauch eingebettet in anderen Anwendungen

schwedische Firma MySQL AB, dann Sun Microsystems,dann Übernahme durch Oraclekostenlose Community-Version, freie Software (GPL)kostenpflichtige Enterprise-VersionRelationales DBMS

K. Puschke phpMySQL

Page 116: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

MySQL

DBMSsehr verbreitet in Webanwendungenauch eingebettet in anderen Anwendungenschwedische Firma MySQL AB, dann Sun Microsystems,dann Übernahme durch Oracle

kostenlose Community-Version, freie Software (GPL)kostenpflichtige Enterprise-VersionRelationales DBMS

K. Puschke phpMySQL

Page 117: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

MySQL

DBMSsehr verbreitet in Webanwendungenauch eingebettet in anderen Anwendungenschwedische Firma MySQL AB, dann Sun Microsystems,dann Übernahme durch Oraclekostenlose Community-Version, freie Software (GPL)

kostenpflichtige Enterprise-VersionRelationales DBMS

K. Puschke phpMySQL

Page 118: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

MySQL

DBMSsehr verbreitet in Webanwendungenauch eingebettet in anderen Anwendungenschwedische Firma MySQL AB, dann Sun Microsystems,dann Übernahme durch Oraclekostenlose Community-Version, freie Software (GPL)kostenpflichtige Enterprise-Version

Relationales DBMS

K. Puschke phpMySQL

Page 119: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

MySQL

DBMSsehr verbreitet in Webanwendungenauch eingebettet in anderen Anwendungenschwedische Firma MySQL AB, dann Sun Microsystems,dann Übernahme durch Oraclekostenlose Community-Version, freie Software (GPL)kostenpflichtige Enterprise-VersionRelationales DBMS

K. Puschke phpMySQL

Page 120: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Relationales Modell

E.F. Codd (1970)

hohe Verbreitung seit den 80er Jahren, z.B.

MySQLPostgreSQLOracle. . .

Datenbank als Sammlung von Relationen (Tabellen)Relation: Menge von Tupeln (Datensätzen, Zeilen)

unsortiertkeine Duplikate

K. Puschke phpMySQL

Page 121: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Relationales Modell

E.F. Codd (1970)hohe Verbreitung seit den 80er Jahren, z.B.

MySQLPostgreSQLOracle. . .

Datenbank als Sammlung von Relationen (Tabellen)Relation: Menge von Tupeln (Datensätzen, Zeilen)

unsortiertkeine Duplikate

K. Puschke phpMySQL

Page 122: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Relationales Modell

E.F. Codd (1970)hohe Verbreitung seit den 80er Jahren, z.B.

MySQL

PostgreSQLOracle. . .

Datenbank als Sammlung von Relationen (Tabellen)Relation: Menge von Tupeln (Datensätzen, Zeilen)

unsortiertkeine Duplikate

K. Puschke phpMySQL

Page 123: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Relationales Modell

E.F. Codd (1970)hohe Verbreitung seit den 80er Jahren, z.B.

MySQLPostgreSQL

Oracle. . .

Datenbank als Sammlung von Relationen (Tabellen)Relation: Menge von Tupeln (Datensätzen, Zeilen)

unsortiertkeine Duplikate

K. Puschke phpMySQL

Page 124: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Relationales Modell

E.F. Codd (1970)hohe Verbreitung seit den 80er Jahren, z.B.

MySQLPostgreSQLOracle

. . .

Datenbank als Sammlung von Relationen (Tabellen)Relation: Menge von Tupeln (Datensätzen, Zeilen)

unsortiertkeine Duplikate

K. Puschke phpMySQL

Page 125: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Relationales Modell

E.F. Codd (1970)hohe Verbreitung seit den 80er Jahren, z.B.

MySQLPostgreSQLOracle. . .

Datenbank als Sammlung von Relationen (Tabellen)Relation: Menge von Tupeln (Datensätzen, Zeilen)

unsortiertkeine Duplikate

K. Puschke phpMySQL

Page 126: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Relationales Modell

E.F. Codd (1970)hohe Verbreitung seit den 80er Jahren, z.B.

MySQLPostgreSQLOracle. . .

Datenbank als Sammlung von Relationen (Tabellen)

Relation: Menge von Tupeln (Datensätzen, Zeilen)

unsortiertkeine Duplikate

K. Puschke phpMySQL

Page 127: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Relationales Modell

E.F. Codd (1970)hohe Verbreitung seit den 80er Jahren, z.B.

MySQLPostgreSQLOracle. . .

Datenbank als Sammlung von Relationen (Tabellen)Relation: Menge von Tupeln (Datensätzen, Zeilen)

unsortiertkeine Duplikate

K. Puschke phpMySQL

Page 128: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Relationales Modell

E.F. Codd (1970)hohe Verbreitung seit den 80er Jahren, z.B.

MySQLPostgreSQLOracle. . .

Datenbank als Sammlung von Relationen (Tabellen)Relation: Menge von Tupeln (Datensätzen, Zeilen)

unsortiert

keine Duplikate

K. Puschke phpMySQL

Page 129: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Relationales Modell

E.F. Codd (1970)hohe Verbreitung seit den 80er Jahren, z.B.

MySQLPostgreSQLOracle. . .

Datenbank als Sammlung von Relationen (Tabellen)Relation: Menge von Tupeln (Datensätzen, Zeilen)

unsortiertkeine Duplikate

K. Puschke phpMySQL

Page 130: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Client und Server

Datenbankserver : Software, die Datenbankdienste (einDatenbanksystem) anbietet

auch der Rechner, auf dem dieser Dienst läuft

Anwendung oder Client greift auf den Datenbankserver zu

K. Puschke phpMySQL

Page 131: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Client und Server

Datenbankserver : Software, die Datenbankdienste (einDatenbanksystem) anbietet

auch der Rechner, auf dem dieser Dienst läuft

Anwendung oder Client greift auf den Datenbankserver zu

K. Puschke phpMySQL

Page 132: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Client und Server

Datenbankserver : Software, die Datenbankdienste (einDatenbanksystem) anbietet

auch der Rechner, auf dem dieser Dienst läuft

Anwendung oder Client greift auf den Datenbankserver zu

K. Puschke phpMySQL

Page 133: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

MySQLClients und Anwendungen

Kommandozeilenclient mysql

Webinterface phpmyadmin

MySQL GUI Tools

. . .Webanwendungen

MediaWikiWordPressunsere selbstprogrammierte Anwendung. . .

Anwendungen mit eingebetteter Datenbank

Zimbra. . .

K. Puschke phpMySQL

Page 134: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

MySQLClients und Anwendungen

Kommandozeilenclient mysqlWebinterface phpmyadmin

MySQL GUI Tools

. . .Webanwendungen

MediaWikiWordPressunsere selbstprogrammierte Anwendung. . .

Anwendungen mit eingebetteter Datenbank

Zimbra. . .

K. Puschke phpMySQL

Page 135: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

MySQLClients und Anwendungen

Kommandozeilenclient mysqlWebinterface phpmyadmin

MySQL GUI Tools

. . .Webanwendungen

MediaWikiWordPressunsere selbstprogrammierte Anwendung. . .

Anwendungen mit eingebetteter Datenbank

Zimbra. . .

K. Puschke phpMySQL

Page 136: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

MySQLClients und Anwendungen

Kommandozeilenclient mysqlWebinterface phpmyadmin

MySQL GUI Tools

. . .

Webanwendungen

MediaWikiWordPressunsere selbstprogrammierte Anwendung. . .

Anwendungen mit eingebetteter Datenbank

Zimbra. . .

K. Puschke phpMySQL

Page 137: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

MySQLClients und Anwendungen

Kommandozeilenclient mysqlWebinterface phpmyadmin

MySQL GUI Tools

. . .Webanwendungen

MediaWikiWordPressunsere selbstprogrammierte Anwendung. . .

Anwendungen mit eingebetteter Datenbank

Zimbra. . .

K. Puschke phpMySQL

Page 138: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

MySQLClients und Anwendungen

Kommandozeilenclient mysqlWebinterface phpmyadmin

MySQL GUI Tools

. . .Webanwendungen

MediaWiki

WordPressunsere selbstprogrammierte Anwendung. . .

Anwendungen mit eingebetteter Datenbank

Zimbra. . .

K. Puschke phpMySQL

Page 139: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

MySQLClients und Anwendungen

Kommandozeilenclient mysqlWebinterface phpmyadmin

MySQL GUI Tools

. . .Webanwendungen

MediaWikiWordPress

unsere selbstprogrammierte Anwendung. . .

Anwendungen mit eingebetteter Datenbank

Zimbra. . .

K. Puschke phpMySQL

Page 140: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

MySQLClients und Anwendungen

Kommandozeilenclient mysqlWebinterface phpmyadmin

MySQL GUI Tools

. . .Webanwendungen

MediaWikiWordPressunsere selbstprogrammierte Anwendung

. . .Anwendungen mit eingebetteter Datenbank

Zimbra. . .

K. Puschke phpMySQL

Page 141: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

MySQLClients und Anwendungen

Kommandozeilenclient mysqlWebinterface phpmyadmin

MySQL GUI Tools

. . .Webanwendungen

MediaWikiWordPressunsere selbstprogrammierte Anwendung. . .

Anwendungen mit eingebetteter Datenbank

Zimbra. . .

K. Puschke phpMySQL

Page 142: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

MySQLClients und Anwendungen

Kommandozeilenclient mysqlWebinterface phpmyadmin

MySQL GUI Tools

. . .Webanwendungen

MediaWikiWordPressunsere selbstprogrammierte Anwendung. . .

Anwendungen mit eingebetteter Datenbank

Zimbra. . .

K. Puschke phpMySQL

Page 143: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

MySQLClients und Anwendungen

Kommandozeilenclient mysqlWebinterface phpmyadmin

MySQL GUI Tools

. . .Webanwendungen

MediaWikiWordPressunsere selbstprogrammierte Anwendung. . .

Anwendungen mit eingebetteter DatenbankZimbra

. . .

K. Puschke phpMySQL

Page 144: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

MySQLClients und Anwendungen

Kommandozeilenclient mysqlWebinterface phpmyadmin

MySQL GUI Tools

. . .Webanwendungen

MediaWikiWordPressunsere selbstprogrammierte Anwendung. . .

Anwendungen mit eingebetteter DatenbankZimbra. . .

K. Puschke phpMySQL

Page 145: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Erste Befehle

SHOW DATABASES zeigt alle Datenbanken

USE datenbank wählt Datenbank datenbank ausSHOW TABLES zeigt Tabellen der gewählten DatenbankDESCRIBE tabelle zeigt Spalten der Tabelle an

K. Puschke phpMySQL

Page 146: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Erste Befehle

SHOW DATABASES zeigt alle DatenbankenUSE datenbank wählt Datenbank datenbank aus

SHOW TABLES zeigt Tabellen der gewählten DatenbankDESCRIBE tabelle zeigt Spalten der Tabelle an

K. Puschke phpMySQL

Page 147: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Erste Befehle

SHOW DATABASES zeigt alle DatenbankenUSE datenbank wählt Datenbank datenbank ausSHOW TABLES zeigt Tabellen der gewählten Datenbank

DESCRIBE tabelle zeigt Spalten der Tabelle an

K. Puschke phpMySQL

Page 148: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Erste Befehle

SHOW DATABASES zeigt alle DatenbankenUSE datenbank wählt Datenbank datenbank ausSHOW TABLES zeigt Tabellen der gewählten DatenbankDESCRIBE tabelle zeigt Spalten der Tabelle an

K. Puschke phpMySQL

Page 149: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Abfragen I

SELECT

verlangt Angabe von Spalte(n) und Tabellen, dieauszugeben sind

* bedeutet alle Spalten der TabelleSELECT Name,Vorname FROM KundInnen

SELECT * FROM KundInnen

ORDER BY

sortiert AusgabeSELECT Name,Vorname FROM KundInnen ORDER BYName

K. Puschke phpMySQL

Page 150: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Abfragen I

SELECT

verlangt Angabe von Spalte(n) und Tabellen, dieauszugeben sind

* bedeutet alle Spalten der TabelleSELECT Name,Vorname FROM KundInnen

SELECT * FROM KundInnen

ORDER BY

sortiert AusgabeSELECT Name,Vorname FROM KundInnen ORDER BYName

K. Puschke phpMySQL

Page 151: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Abfragen I

SELECT

verlangt Angabe von Spalte(n) und Tabellen, dieauszugeben sind

* bedeutet alle Spalten der Tabelle

SELECT Name,Vorname FROM KundInnen

SELECT * FROM KundInnen

ORDER BY

sortiert AusgabeSELECT Name,Vorname FROM KundInnen ORDER BYName

K. Puschke phpMySQL

Page 152: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Abfragen I

SELECT

verlangt Angabe von Spalte(n) und Tabellen, dieauszugeben sind

* bedeutet alle Spalten der TabelleSELECT Name,Vorname FROM KundInnen

SELECT * FROM KundInnen

ORDER BY

sortiert AusgabeSELECT Name,Vorname FROM KundInnen ORDER BYName

K. Puschke phpMySQL

Page 153: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Abfragen I

SELECT

verlangt Angabe von Spalte(n) und Tabellen, dieauszugeben sind

* bedeutet alle Spalten der TabelleSELECT Name,Vorname FROM KundInnen

SELECT * FROM KundInnen

ORDER BY

sortiert AusgabeSELECT Name,Vorname FROM KundInnen ORDER BYName

K. Puschke phpMySQL

Page 154: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Abfragen I

SELECT

verlangt Angabe von Spalte(n) und Tabellen, dieauszugeben sind

* bedeutet alle Spalten der TabelleSELECT Name,Vorname FROM KundInnen

SELECT * FROM KundInnen

ORDER BY

sortiert AusgabeSELECT Name,Vorname FROM KundInnen ORDER BYName

K. Puschke phpMySQL

Page 155: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Abfragen I

SELECT

verlangt Angabe von Spalte(n) und Tabellen, dieauszugeben sind

* bedeutet alle Spalten der TabelleSELECT Name,Vorname FROM KundInnen

SELECT * FROM KundInnen

ORDER BY

sortiert Ausgabe

SELECT Name,Vorname FROM KundInnen ORDER BYName

K. Puschke phpMySQL

Page 156: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Abfragen I

SELECT

verlangt Angabe von Spalte(n) und Tabellen, dieauszugeben sind

* bedeutet alle Spalten der TabelleSELECT Name,Vorname FROM KundInnen

SELECT * FROM KundInnen

ORDER BY

sortiert AusgabeSELECT Name,Vorname FROM KundInnen ORDER BYName

K. Puschke phpMySQL

Page 157: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Formatierung

Good PracticeSELECT * nicht in Anwendungen verwenden!

praktisch bei interaktivem Zugriff auf DBgefährlich in Anwendungen - das Datenbankschemakönnte sich z.B. geändert haben

K. Puschke phpMySQL

Page 158: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Formatierung

Good PracticeSELECT * nicht in Anwendungen verwenden!

praktisch bei interaktivem Zugriff auf DB

gefährlich in Anwendungen - das Datenbankschemakönnte sich z.B. geändert haben

K. Puschke phpMySQL

Page 159: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Formatierung

Good PracticeSELECT * nicht in Anwendungen verwenden!

praktisch bei interaktivem Zugriff auf DBgefährlich in Anwendungen - das Datenbankschemakönnte sich z.B. geändert haben

K. Puschke phpMySQL

Page 160: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Abfragen II

LIMIT

beschränkt die Zahl der ausgegeben Einträgehäufig mit ORDER BY kombiniertSELECT Name,Vorname FROM KundInnen LIMIT 5

NULL

Kein Eintrag (z.B. für Kundin Müller keine Telefonnummervermerkt): NULL

NULL

NULL ist etwas anderes als die Zahl Null oder ein leererString!

K. Puschke phpMySQL

Page 161: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Abfragen II

LIMIT

beschränkt die Zahl der ausgegeben Einträge

häufig mit ORDER BY kombiniertSELECT Name,Vorname FROM KundInnen LIMIT 5

NULL

Kein Eintrag (z.B. für Kundin Müller keine Telefonnummervermerkt): NULL

NULL

NULL ist etwas anderes als die Zahl Null oder ein leererString!

K. Puschke phpMySQL

Page 162: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Abfragen II

LIMIT

beschränkt die Zahl der ausgegeben Einträgehäufig mit ORDER BY kombiniert

SELECT Name,Vorname FROM KundInnen LIMIT 5

NULL

Kein Eintrag (z.B. für Kundin Müller keine Telefonnummervermerkt): NULL

NULL

NULL ist etwas anderes als die Zahl Null oder ein leererString!

K. Puschke phpMySQL

Page 163: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Abfragen II

LIMIT

beschränkt die Zahl der ausgegeben Einträgehäufig mit ORDER BY kombiniertSELECT Name,Vorname FROM KundInnen LIMIT 5

NULL

Kein Eintrag (z.B. für Kundin Müller keine Telefonnummervermerkt): NULL

NULL

NULL ist etwas anderes als die Zahl Null oder ein leererString!

K. Puschke phpMySQL

Page 164: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Abfragen II

LIMIT

beschränkt die Zahl der ausgegeben Einträgehäufig mit ORDER BY kombiniertSELECT Name,Vorname FROM KundInnen LIMIT 5

NULL

Kein Eintrag (z.B. für Kundin Müller keine Telefonnummervermerkt): NULL

NULL

NULL ist etwas anderes als die Zahl Null oder ein leererString!

K. Puschke phpMySQL

Page 165: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Abfragen II

LIMIT

beschränkt die Zahl der ausgegeben Einträgehäufig mit ORDER BY kombiniertSELECT Name,Vorname FROM KundInnen LIMIT 5

NULL

Kein Eintrag (z.B. für Kundin Müller keine Telefonnummervermerkt): NULL

NULL

NULL ist etwas anderes als die Zahl Null oder ein leererString!

K. Puschke phpMySQL

Page 166: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Abfragen II

LIMIT

beschränkt die Zahl der ausgegeben Einträgehäufig mit ORDER BY kombiniertSELECT Name,Vorname FROM KundInnen LIMIT 5

NULL

Kein Eintrag (z.B. für Kundin Müller keine Telefonnummervermerkt): NULL

NULL

NULL ist etwas anderes als die Zahl Null oder ein leererString!

K. Puschke phpMySQL

Page 167: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Abfragen II

LIMIT

beschränkt die Zahl der ausgegeben Einträgehäufig mit ORDER BY kombiniertSELECT Name,Vorname FROM KundInnen LIMIT 5

NULL

Kein Eintrag (z.B. für Kundin Müller keine Telefonnummervermerkt): NULL

NULL

NULL ist etwas anderes als die Zahl Null oder ein leererString!

K. Puschke phpMySQL

Page 168: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Ergebnisse einschränken I

WHERE

schränkt Ergebnisse einSELECT Name FROM KundInnen WHERE Stadt =’Salzburg’

SELECT Name FROM KundInnen WHERE Vorname ISNULL

K. Puschke phpMySQL

Page 169: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Ergebnisse einschränken I

WHERE

schränkt Ergebnisse ein

SELECT Name FROM KundInnen WHERE Stadt =’Salzburg’

SELECT Name FROM KundInnen WHERE Vorname ISNULL

K. Puschke phpMySQL

Page 170: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Ergebnisse einschränken I

WHERE

schränkt Ergebnisse einSELECT Name FROM KundInnen WHERE Stadt =’Salzburg’

SELECT Name FROM KundInnen WHERE Vorname ISNULL

K. Puschke phpMySQL

Page 171: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Ergebnisse einschränken I

WHERE

schränkt Ergebnisse einSELECT Name FROM KundInnen WHERE Stadt =’Salzburg’

SELECT Name FROM KundInnen WHERE Vorname ISNULL

K. Puschke phpMySQL

Page 172: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Ergebnisse einschränken II

AND und OR

verknüpfen mehrere BedingungenSELECT Name FROM KundInnen WHERE Stadt =’Salzburg’ AND Vorname=’Clara’

K. Puschke phpMySQL

Page 173: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse 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

Page 174: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Ergebnisse einschränken II

AND und OR

verknüpfen mehrere BedingungenSELECT Name FROM KundInnen WHERE Stadt =’Salzburg’ AND Vorname=’Clara’

K. Puschke phpMySQL

Page 175: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Abfragen einschränken III

UNION

vereinigt Ergebnisse(SELECT Name FROM KundInnen WHERE Stadt=’Salzburg’) UNION (SELECT Name FROMKundInnen WHERE Stadt = ’Wien’)

K. Puschke phpMySQL

Page 176: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Abfragen einschränken III

UNION

vereinigt Ergebnisse

(SELECT Name FROM KundInnen WHERE Stadt=’Salzburg’) UNION (SELECT Name FROMKundInnen WHERE Stadt = ’Wien’)

K. Puschke phpMySQL

Page 177: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Abfragen einschränken III

UNION

vereinigt Ergebnisse(SELECT Name FROM KundInnen WHERE Stadt=’Salzburg’) UNION (SELECT Name FROMKundInnen WHERE Stadt = ’Wien’)

K. Puschke phpMySQL

Page 178: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Ergebnisse einschränken IV

SELECT DISTINCT

gibt nur unterschiedliche Ergebnisse ausSELECT DISTINCT Stadt FROM KundInnen

K. Puschke phpMySQL

Page 179: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Ergebnisse einschränken IV

SELECT DISTINCT

gibt nur unterschiedliche Ergebnisse aus

SELECT DISTINCT Stadt FROM KundInnen

K. Puschke phpMySQL

Page 180: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken

Ergebnisse einschränken IV

SELECT DISTINCT

gibt nur unterschiedliche Ergebnisse ausSELECT DISTINCT Stadt FROM KundInnen

K. Puschke phpMySQL

Page 181: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection

Outline

1 Erste Schritte

2 Grundbegriffe des Web

3 PHP Programmierung

4 MySQL Datenbanken

5 Website mit DatenbankanbindungDatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection

K. Puschke phpMySQL

Page 182: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection

Datenbankverbindung

vor Verwendung der Datenbank muß eine Verbindung zumDatenbankserver aufgebaut werden

Verbindungsaufbau kann fehlschlagen

Datenbankserver down, Firewall falsch konfiguriert,Verbindungsdaten fehlerhaft,. . .Fehlerfall berücksichtigen (Meldung undProgrammabbruch,. . . )

Verbindung kann für mehrere Datenbankabfragen benutztwerdennicht mehr benötigte Verbindung kann manuell getrenntwerdennach Ende des php-Skripts wird automatisch getrennt

K. Puschke phpMySQL

Page 183: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection

Datenbankverbindung

vor Verwendung der Datenbank muß eine Verbindung zumDatenbankserver aufgebaut werdenVerbindungsaufbau kann fehlschlagen

Datenbankserver down, Firewall falsch konfiguriert,Verbindungsdaten fehlerhaft,. . .Fehlerfall berücksichtigen (Meldung undProgrammabbruch,. . . )

Verbindung kann für mehrere Datenbankabfragen benutztwerdennicht mehr benötigte Verbindung kann manuell getrenntwerdennach Ende des php-Skripts wird automatisch getrennt

K. Puschke phpMySQL

Page 184: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection

Datenbankverbindung

vor Verwendung der Datenbank muß eine Verbindung zumDatenbankserver aufgebaut werdenVerbindungsaufbau kann fehlschlagen

Datenbankserver down, Firewall falsch konfiguriert,Verbindungsdaten fehlerhaft,. . .

Fehlerfall berücksichtigen (Meldung undProgrammabbruch,. . . )

Verbindung kann für mehrere Datenbankabfragen benutztwerdennicht mehr benötigte Verbindung kann manuell getrenntwerdennach Ende des php-Skripts wird automatisch getrennt

K. Puschke phpMySQL

Page 185: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection

Datenbankverbindung

vor Verwendung der Datenbank muß eine Verbindung zumDatenbankserver aufgebaut werdenVerbindungsaufbau kann fehlschlagen

Datenbankserver down, Firewall falsch konfiguriert,Verbindungsdaten fehlerhaft,. . .Fehlerfall berücksichtigen (Meldung undProgrammabbruch,. . . )

Verbindung kann für mehrere Datenbankabfragen benutztwerdennicht mehr benötigte Verbindung kann manuell getrenntwerdennach Ende des php-Skripts wird automatisch getrennt

K. Puschke phpMySQL

Page 186: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection

Datenbankverbindung

vor Verwendung der Datenbank muß eine Verbindung zumDatenbankserver aufgebaut werdenVerbindungsaufbau kann fehlschlagen

Datenbankserver down, Firewall falsch konfiguriert,Verbindungsdaten fehlerhaft,. . .Fehlerfall berücksichtigen (Meldung undProgrammabbruch,. . . )

Verbindung kann für mehrere Datenbankabfragen benutztwerden

nicht mehr benötigte Verbindung kann manuell getrenntwerdennach Ende des php-Skripts wird automatisch getrennt

K. Puschke phpMySQL

Page 187: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection

Datenbankverbindung

vor Verwendung der Datenbank muß eine Verbindung zumDatenbankserver aufgebaut werdenVerbindungsaufbau kann fehlschlagen

Datenbankserver down, Firewall falsch konfiguriert,Verbindungsdaten fehlerhaft,. . .Fehlerfall berücksichtigen (Meldung undProgrammabbruch,. . . )

Verbindung kann für mehrere Datenbankabfragen benutztwerdennicht mehr benötigte Verbindung kann manuell getrenntwerden

nach Ende des php-Skripts wird automatisch getrennt

K. Puschke phpMySQL

Page 188: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection

Datenbankverbindung

vor Verwendung der Datenbank muß eine Verbindung zumDatenbankserver aufgebaut werdenVerbindungsaufbau kann fehlschlagen

Datenbankserver down, Firewall falsch konfiguriert,Verbindungsdaten fehlerhaft,. . .Fehlerfall berücksichtigen (Meldung undProgrammabbruch,. . . )

Verbindung kann für mehrere Datenbankabfragen benutztwerdennicht mehr benötigte Verbindung kann manuell getrenntwerdennach Ende des php-Skripts wird automatisch getrennt

K. Puschke phpMySQL

Page 189: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection

Datenbankinhalt

Datenbankinhalte sind u.U. unsicher

Ergebnisse von Datenbankabfragen ggf. vor weitererVerwendung unschädlich machengeeignet escapen

K. Puschke phpMySQL

Page 190: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection

Datenbankinhalt

Datenbankinhalte sind u.U. unsicherErgebnisse von Datenbankabfragen ggf. vor weitererVerwendung unschädlich machen

geeignet escapen

K. Puschke phpMySQL

Page 191: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection

Datenbankinhalt

Datenbankinhalte sind u.U. unsicherErgebnisse von Datenbankabfragen ggf. vor weitererVerwendung unschädlich machengeeignet escapen

K. Puschke phpMySQL

Page 192: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection

SQL Injection

BeispielSELECT user,pw FROM usersWHERE user=’$user’ and pw=’$pw’

$pw="x’ OR ’’=’"

SELECT user,pw FROM usersWHERE user=’foo42’ and pw=’x’ OR ’’=’’

Abwehr

Eingaben für SQL escapen oderbesser: Prepared Statements

K. Puschke phpMySQL

Page 193: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection

SQL Injection

BeispielSELECT user,pw FROM usersWHERE user=’$user’ and pw=’$pw’

$pw="x’ OR ’’=’"

SELECT user,pw FROM usersWHERE user=’foo42’ and pw=’x’ OR ’’=’’

Abwehr

Eingaben für SQL escapen oderbesser: Prepared Statements

K. Puschke phpMySQL

Page 194: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection

SQL Injection

BeispielSELECT user,pw FROM usersWHERE user=’$user’ and pw=’$pw’

$pw="x’ OR ’’=’"

SELECT user,pw FROM usersWHERE user=’foo42’ and pw=’x’ OR ’’=’’

Abwehr

Eingaben für SQL escapen oderbesser: Prepared Statements

K. Puschke phpMySQL

Page 195: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection

SQL Injection

BeispielSELECT user,pw FROM usersWHERE user=’$user’ and pw=’$pw’

$pw="x’ OR ’’=’"

SELECT user,pw FROM usersWHERE user=’foo42’ and pw=’x’ OR ’’=’’

AbwehrEingaben für SQL escapen oder

besser: Prepared Statements

K. Puschke phpMySQL

Page 196: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection

SQL Injection

BeispielSELECT user,pw FROM usersWHERE user=’$user’ and pw=’$pw’

$pw="x’ OR ’’=’"

SELECT user,pw FROM usersWHERE user=’foo42’ and pw=’x’ OR ’’=’’

AbwehrEingaben für SQL escapen oderbesser: Prepared Statements

K. Puschke phpMySQL

Page 197: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection

Prepared Statements

trennen SQL-Logik und Dateneingabe

schützen dadurch vor SQL Injection Angriffenzusätzliches escapen nicht erforderlichggf. Performanzgewinn

K. Puschke phpMySQL

Page 198: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection

Prepared Statements

trennen SQL-Logik und Dateneingabeschützen dadurch vor SQL Injection Angriffen

zusätzliches escapen nicht erforderlichggf. Performanzgewinn

K. Puschke phpMySQL

Page 199: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection

Prepared Statements

trennen SQL-Logik und Dateneingabeschützen dadurch vor SQL Injection Angriffenzusätzliches escapen nicht erforderlich

ggf. Performanzgewinn

K. Puschke phpMySQL

Page 200: Webentwicklung mit PHP und MySQL

Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken

Website mit DB-Anbindung

DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection

Prepared Statements

trennen SQL-Logik und Dateneingabeschützen dadurch vor SQL Injection Angriffenzusätzliches escapen nicht erforderlichggf. Performanzgewinn

K. Puschke phpMySQL