43
Datenanbindung in Web- Applikationen

Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

Embed Size (px)

Citation preview

Page 1: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

Datenanbindung in Web-Applikationen

Page 2: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

2

Überblick

In diesem Kapitel:– Datenpersistenz

allgemeine Aspekte der Datenpersistenz in Web-Applikationen

Datenbankanbindung in serverseitigen Applikationen

– Web-Applikationstechnologien: PHP, ASP, ASP.NET, JSP

– Ausführliche Einführung in PHP– Kurze Einführung in SQL als "Datenbanksprache"

Page 3: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

3

Datenpersistenz

Möglichkeiten der Datenpersistenz– statische Inhalte

z.B. in HTML, XML Dateien fixe Daten ohne (Vor-)verarbeitung

– dynamische Inhalte Aufbereitung in serverseitigen Programmen (z.B. PHP,

ASP, CGI etc.)– Filesystem: low-level direct I/O– Datenbankmanagementsbstem (DBMS): high-level

managed I/O

Page 4: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

4

Datenpersistenz

Abstraktionsebenen bei Datenzugriff– DBMS als einzige Schicht– Business Objects Layer

Schicht zwischen Applikation und DBMS Ziel: Kapseln der Anwendungslogik in Business Objects Realisierung meist über Klassen-/Objektbibliotheken

oder Services (z.B. Java Beans, COM-Objekte, ...)

– Transaction Processing Monitors (TPM) Verwaltung einkommender Client-Anfragen Bündelung gleichartiger Anfragen bei gleichzeitiger

Sicherstellung der Datenintegrität wichtig für verteilte, stark vernetzte Architekturen

Page 5: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

5

Web-Applikation mit Datenanbindung

Datenbankanbindung in einer serverseitigen Web-ApplikationAblauf einer Webseitenabfrage

3. Aufruf von DB-Funktionen über DB-API

ServerseitigeProgramme DBMS

Daten-bank

4. Ausführen der

Funktionen auf der DB

5. Ergebnis liefern

2. Request verarbeiten

Webserver

6. Response vorbereiten

Serverseite

1. HTTP-Request schicken

Webclient(z.B. Browser)

7. HTTP-Response schicken

8. Response anzeigen

Page 6: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

6

Technologien für Web-Applikationen

Überblick– Datenbankschnittstellen

ODBC/JDBC Native

– einige serverseitige Scriptumgebungen: PHP ASP, ASP.NET JSP ColdFusion

– Vergleich

Page 7: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

7

DB-Schnittstellen

Open Database Connectivity (ODBC)– Standardisiertes API für Datenbankzugriff– DB-spezifische Implementierungen durch ODBC-Treiber– SQL als Datenbankzugriffssprache

Java Database Connectivity (JDBC)– Java Klassenbibliothek von Sun Microsystems

Native APIs– Spezielle Application Programming Interfaces (API) für

bestimmte Datenbanksysteme und/oder SprachenzB. für OCI-Funktionen in PHP für Oracle8

Page 8: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

8

PHP

PHP: Hypertext Preprocessor– Scriptsprache– Open Source– Serverseitige Verarbeitung– Eingebettet in HTML

Datenanbindung– Mit allen gängigen Datenbank-/Betriebssystem–/

Server-Konfigurationen möglich– PHP/MySQL beliebteste Kombination

Schnell, billig, unkompliziert

Page 9: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

9

PHP

Eingebettet in HTML– Spezielle Tags zur Markierung von PHP-

Abschnitten, u.a. <?php ... ?>– ...jump in and out of "PHP mode"– Bsp.:

– am Client:

<html> <head><title>PHP Beispiel</title></head> <body> <?php echo "Guten Tag!"; ?> </body></html>

<html> <head><title>PHP Beispiel</title></head> <body> Guten Tag! </body></html>

Page 10: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

10

ASP, ASP.NET

Active Server Pages– Serverseitige Technologie von Microsoft– Konzept ähnlich PHP

Eingebettet in HTML– Unterstützt verschiedene Scriptsprachen– Plattform: WinNT, IIS– Datenanbindung: funktioniert mit ODBC-fähigen DBs

ASP.NET– Trennung HTML und OO-Programmcode– Ereignisorientiert, Objektorientiert, verwendet Teilmenge der .NET

Klassenbibliothek– Definiert HTML-Elemente als Objekte– vorherrschende Sprachen: VB.NET, C# (früher: VBScript, JScript)– Datenanbindung: Funktioniert derzeit mit SQL-Server und OLEDB

Page 11: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

11

ASP, ASP.NET

ASP: eingebettet in HTML, ablauforientiert

<html> <head><title>ASP Beispiel</title></head> <body> <? Response.Write("Hi, I'm an ASP script!") ?> </body></html>

Page 12: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

12

ASP, ASP.NET

ASP.NET: "hinter" HTML, ereignisorientiert

<%@ Page Language="vb" Codebehind="test.aspx.vb" Inherits="TestPage" %><html> <body> <asp:Table id="Tbl" runat="server"></asp:Table> </body></html>

Public Class TestPage Inherits System.Web.UI.Page Private Sub Page_Load(…) Handles MyBase.Load

Tbl.BorderColor = Color.Blue Tbl.Rows(1).Cells(3).Text = "Hello!" ... End SubEnd Class

test.aspx

test.aspx.vb

Page 13: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

13

JSP

JavaServer Pages– Ähnliches Konzept wie PHP/ASP– Java-Code eingebettet in HTML– Server erzeugt bei erstem Zugriff ausführbares Servlet:

"Reiner" Java-Bytecode HTML-Ausgabe über Response-Objekt

Datenanbindung– Zugriff auf Datenbank über JDBC-Klassen– Benötigt JDBC-Treiber für Datenbank

<body> <% for (int i=0; i<11; i++) { %> <br> <%= i %> <% } %></body>

Page 14: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

14

Weitere...

Common Gateway Interface (CGI)– Weit verbreiteter serverseitiger Mechanismus

Parameterübergabe an Programme (z.B. Formulareingaben)

Dynamische Erzeugung von HTML-Seiten, ...

– Sprachen: PERL, C/C++, ...– Datenbankanbindung möglich

ColdFusion– Kommerzielle Technologie (teuer)– In HTML eingebettete Tags– Datenbankanbindung möglich

Page 15: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

15

Vergleich

PHP ASP.NET JSP CGI

Sprachen PHP VB.NET,

C#

Java PERL, C/C++, ...

DBS Alle native OLEDB, SQL-Server

JDBC Alle

Plattform Alle WinNT, IIS Windows,

Unix/Linux

Alle

Kosten Freeware,

Open Source

Freeware Freeware X

Page 16: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

Einführung in PHP

Page 17: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

17

Allgemeines

Allgemeines zu PHP– steht für PHP Hypertext Preprocessor– ist eine Skriptsprache– wird eingebettet in HTML– wird serverseitig verarbeitet– wird seit 1994 entwickelt, ist sehr beliebt– ist angelehnt an C, Java, und Perl– besitzt APIs zu sehr vielen DBS

PHP ist verfügt über umfangreiche Dokumentation:– Homepage: http://www.php.net oder http://at.php.net– Handbuch: http://at.php.net/manual

Page 18: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

18

PHP-Code

4 verschiedene Möglichkeiten zur Einbettung in HTML (abhängig von der PHP-Konfiguration)<? … ?> <?php … ?> <script language="php"> … </script> <% … %>

Kommentare innerhalb von PHP-Code<?

# einzeiliger Kommentar

// ebenfalls einzeiliger Kommentar

/* mehrzeiliger Kommentar */

?>

Jede PHP-Anweisung muss mit Strichpunkt abgeschlossen werden!<? echo "Hallo"; ?>

Page 19: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

19

Textausgabe

Textausgabe mit print oder echo<? print "Hallo"; # Hallo ausgeben # echo macht automatisch newline ("\n") am Ende echo "Hallo"; # entspricht print "Hallo\n"

# mehrzeilige Ausgabe print "Erste und zweite Zeile";

# das gleiche erreicht man mit print "Erste und\nzweite Zeile";

# beachte den Unterschied zum HTML-Zeilenumbruch print "Erste und<BR>zweite Zeile";

/* Anführungszeichen kann man auch verwenden, muss sie aber mit Backslash maskieren */print "Michi sagte \"Hallo\".";

?>

Page 20: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

20

Variablen

in PHP beginnen Variable mit einem Dollarzeichen ($), gefolgt vom Namen der Variablen.

Name muss entweder mit Buchstaben oder Underscore (_) beginnen!

<? # Deklaration und Initialisierung $var1 = "Hallo"; $var2 = "Schatzi";

# Ausgabe print $var1; # Hallo

# Verkettung mit Punkt (.) print $var1 . " " . $var2; # Hallo Schatzi

# alternativ auch innerhalb der print-Anweisung print "$var1, mein $var2"; # Hallo, mein Schatzi

/* soll die Ausgabe "as is" erfolgen, dann muss einfaches Hochkomma verwendet werden */

print '$var1 ist eine Variable'; # $var1 ist eine Variable?>

Page 21: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

21

Variablen

Es gibt verschiedene Typen von Variablen– Skalare Typen

String <? $s = "Hallo"; ?> Integer <? $i = 4711; ?> Float <? $f1 = -47.11; $f2 = 0.3; ?>

Boolean <? $b = TRUE; $b = FALSE; ?>

– Zusammengesetzte Typen Arrays Objekte

Page 22: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

22

Arrays

Arrays bestehen aus mehreren indizierten Elementen. "Normale" Arrays haben einen numerischen Index beginnend bei Null.

<? $arr = array(); # Initialisierung leer $arr = array(47, 11); # ... mit Vorbelegung

$arr[] = 10; # anhängen mit automatischem Index $arr[3] = "hallo"; # hallo an Index 3 einfügen

# Ausgabe eines Arrays mit print_r() print_r($arr);?>

Ergibt: Array ( [0] => 47 [1] => 11 [2] => 10 [3] => hallo )

Page 23: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

23

Arrays

Assoziative Arrays verwenden String- oder Integer-Indices, um beliebige Werte zu referenzieren:

<? # Initialisierung $star = array( "Vorname" => "Clint", "Nachname" => "Eastwood", "Alter" => 74);

# formattierte Ausgabe: echo $star["Vorname"] . " " . $star["Nachname"] . " ist " . $star["Alter"] . " Jahre alt.";?>

Ergibt: Clint Eastwood ist 74 Jahre alt.

Page 24: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

24

Vordefinierte Variablen

In PHP sind einige Variablen vordefiniert$PHP_SELF: Name des aktuellen Scripts$HTTP_POST_VARS: Alle Variablen, die über ein Formular

geliefert werden (s. später)$HTTP_GET_VARS: Variablen, die über die URL geliefert

werden, z.B. Aufruf von:http://www.xyz.com/test.php?x=10&y=Halloprint_r($HTTP_GET_VARS) liefert: Array ( [x] => 10 [y] => Hallo )

$HTTP_COOKIE_VARS: Cookie-Variablen$HTTP_SERVER_VARS: Server-Variablen, z.B. URL des Client

Hinweis: Alle vordefinierten Variablen können angezeigt werden mit : <? phpinfo(); ?>

Page 25: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

25

Operatoren

Arithmetische Operatoren<? $a = 10; $b = 3;

$a + $b; # Addition (13) $a - $b; # Subtraktion (7) $a * $b; # Multiplikation (30) $a / $b; # Division (3.33333) $a % $b; # Rest ermitteln (1)

# Erhöhen um 1 $a++; # Post-Inkrement (NACH Auswertung der Anweisung) ++$a; # Prä-Inkrement (VOR Auswertung der Anweisung)

# Verringern um 1 $a--; # Post-Dekrement (NACH Auswertung der Anweisung) --$a; # Prä-Dekrement (VOR Auswertung der Anweisung)?>

Page 26: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

26

Operatoren

Logische Operatoren

<? # logisches UND $a and $b; $a &&

$b;

# logisches ODER $a or $b; $a ||

$b;

# exklusives ODER $a xor $b;

# Negation !$a;?>

Vergleichsoperatoren

<? $a == $b; # gleich? $a === $b; # ident? $a != $b; # ungleich? $a <> $b; # ungleich? $a !== $b; # unident? $a < $b; # kleiner? $a > $b; # grösser?

# kleiner oder gleich? $a <= $b; # grösser oder gleich? $a >= $b;?>

Page 27: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

27

Operatoren

Zuweisungsoperatoren<? $a = $b; # weist den Wert von $b auf $a zu # Kombination mit arithmetischen Operatoren:

$a += $b; # entspricht $a = $a + $b

# analog für andere arithmet. Operatoren: $a /= $b; $a *= $b; $a %= $b;?>

Es gibt noch viele weitere Operatoren, zu finden unter:http://at.php.net/manual/de/language.operators.php

Page 28: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

28

Kontrollstrukturen

Konstrollstrukturen sind wichtige Elemente einer Programmiersprache, da sie dynamische und variable Abläufe ermöglichen

PHP kennt u.a. folgende Kontrollstrukturen:– if, elseif, else– while, do– for, foreach– break, continue– switch– include

Page 29: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

29

if, elseif, else

if, elseif, else werden für Abfrageverzweigungen verwendet if und elseif evaluieren beliebige nicht-leere Ausdrücke zu TRUE oder

FALSE<? $a = 10;

if ($a >= 0 && $a < 10) { /* wenn $a gleich 8 oder gleich 9, wird dieser Block

ausgeführt */ } elseif ($a == "Text") { /* dieser Block wird ausgeführt, wenn $a grösser oder

gleich 11. Nach der Prüfung wird $a inkrementiert */

} else { /* dieser Block, falls alle die anderen Bedingungen

nicht erfüllt sind */ }?>

Page 30: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

30

switch

wenn eine Variable auf mehrere Werte geprüft wird, so empfiehlt sich ein switch-Statement<? $a = 10;

switch ($a) { case "Text": echo '$a ist Text'; break; case 10: echo '$a ist 10'; break; default: echo 'keines von beiden'; break; }?>

case: Prüfwert break: Tritt aus dem switch-Block aus default: Anweisung(en), die ausgeführt werden, falls kein case zutrifft.

Page 31: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

31

while, do

while-Schleifen werden solange durchlaufen, bis der Kontrollausdruck zu FALSE evaluiert<? $a = 0;

while ($a < 10) { echo "Heute ist es sehr heiss!"; $a++; } ?> Gibt 10 mal den Text aus

<? # do..while Variante $a = 0; do { echo "Hoffentlich ist es morgen nicht so heiss!"; $a++; } while ($a < 10); ?> Gibt ebenfalls 10 mal den Text aus

Page 32: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

32

for

for-Schleifen sind etwas komplexer, da Sie 3 (optionale) Ausdrücke beinhalten:

<? for ($i=0; $i<10; $i++) { echo "$i<br>"; }?>

Initialisierung: wird bei Schleifeneintritt einmalig

ausgeführt

Kontrollbedingung: Schleife bricht ab, wenn diese Bedingung

zu FALSE evaluiert

Anweisung, die am Ende jedes Durchlaufs

ausgeführt wird

Page 33: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

33

foreach

foreach ist ein Konstrukt zum bequemen Durchlaufen von Arrays<? $arr = array("a", "b", "c"); # nur die Werte auslesen foreach ($arr as $v) { echo $v; }

# Schlüssel und Werte auslesen foreach ($arr as $k => $v) { echo "Schlüssel $k hat Wert $v"; }?>

Page 34: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

34

Weitere

In Schleifen kann man die Abarbeitung beinflussen:break: Veranlasst den sofortigen Austritt aus der Schleifecontinue: erzwingt sofort den nächsten Durchlauf, ohne die

restlichen Statements der Schleife auszuführen.

Um andere Dateien einzubinden:<? include "andere.php"; include "http://www.google.at";?>

Der Code einer eingebundenen Datei wird an die Stelle des include-Statements gesetzt

Page 35: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

35

Funktionen

Häufig benutzte Anweisungssequenzen kann man in eine Funktion verpacken:<? # berechne die Anzahl der Sekunden von $tage Tagen function errechneSekunden ($tage) { $sekunden = $tage * 24 * 60 * 60; return $sekunden; }

$t = 5; $s = errechneSekunden($t); echo "$t Tage haben $s Sekunden";?>

Eine Funktion hat also einen Namen, eine Liste von Parametern, und optional einen Rückgabewert

Page 36: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

36

Web-Formulare

Web-Formulare sind die beliebteste Form der Benutzerinteraktion auf Webseiten

Die Frage ist: Wie kann man Benutzereingaben in PHP verarbeiten?

– Antwort: Die Benutzereingaben werden dem PHP-Skript als HTTP-Post- oder HTTP-Get-Variablen zur Verfügung gestellt (beide Mechanismen sind Teil des HTTP Protokolls)

– $HTTP_POST_VARS und $HTTP_GET_VARS sind vordefinierte assoziative Arrays!

Detaillierte Infos zu allen PHP und Formularen:http://at.php.net/manual/de/tutorial.forms.php undhttp://at.php.net/manual/de/faq.html.php

Page 37: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

37

Web-Formulare

Formular definieren in der Datei form.php:<? if(isset($HTTP_POST_VARS["var"])) { echo "Sie haben {$HTTP_POST_VARS["var"]} eingegeben!"; exit; }?>

<form action="form.php" method="post"><input type="text" name="var"><input type="submit">

</form>

Beim ersten Aufruf im Browser wird das Formular dargestellt:

Nach drücken auf "Abschicken!" wird die Ausgabe dargestellt, weil isset(...) zu TRUE evaluiert

Page 38: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

38

Exkurs: SQL

Relationale Datenbanken bestehen u.a. aus Tabellen (Tables)– Ein Datensatz ist eine Zeile einer Tabelle– Die Spalten entsprechen den einzelnen Feldern

(Attributen) eines Datensatzes– Beispiel: Tabelle Mensen

ID Name Note Kommentar

1 NIG Mensa 4 Übel

2 Katholische Mensa 1 Sehr fein

... ... ... ...

Page 39: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

39

Exkurs: SQL

SQL bietet Möglichkeiten, Tabellen zu erzeugen, zu manipulieren, und abzufragen– CREATE TABLE: Tabelle erzeugen – SELECT: Inhalte auslesen– UPDATE: Inhalte ändern– DELETE: Inhalte löschen

Wichtigstes Statement: SELECTSELECT Spalte(n)FROM Tabelle(n)WHERE Bedingung(en);

Page 40: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

40

Exkurs: SQL

Will man z.B. alle Mensennamen:SELECT Name FROM Mensen;

Will man Name und Note der Mensa auslesen:SELECT Name, Note FROM Mensen;

Bedingungen können angegeben werden:SELECT * FROM Mensen WHERE Note = 1;

Neue Datensätze werden folgendermaßen hinzugefügt:INSERT INTO Mensen VALUES (3, 'TU', '2', 'Recht gut');

Ändern von DatensätzenUPDATE Mensen SET Note = 5 WHERE ID = 1;

Page 41: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

41

Datenanbindung in PHP

PHP bietet Schnittstellen (API) zu allen gängigen Datenbanksystemen und Standards

– Oracle, MySQL, dBase, PostgreSQL, Informix, Sybase, ODBC, uvm...

Alle diese APIs bieten zumindest folgende Funktionalität:

– Verbindung zur DB herstellen und trennen– Abfrage an die DB schicken (meist mehrstufig)– Ergebnis durchlaufen einzelne Datensätze auslesen– Felder einzelner Datensätze auslesen

Kann man mit einer DB-Schnittstelle umgehen, kann man mit allen umgehen!

Page 42: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

42

Datenanbindung in PHP

Beispiel Oracle8: OCI-Funktionen<? # Verbindung herstellen $c = OCILogon("user", "password"); # Abfrage erzeugen... $s = OCIParse($c, "SELECT Name, Note FROM Mensen"); # ...und ausführen OCIExecute($s);

# Datensätze abarbeiten while(OCIFetch($s)) { # Felder auslesen $name = OCIResult($s, "NAME"); $note = OCIResult($s, "NOTE"); echo "$name hat die Note $note.<br>"; }

# Verbindung trennen OCILogoff($c);?>

Ausgabe:NIG Mensa hat die Note 4.Katholische Mensa hat die Note 1.

ID Name Note Kommentar

1 NIG Mensa 4 Übel

2 Katholische Mensa 1 Sehr fein

Page 43: Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung

43

PHP Links

Homepage: http://www.php.net oder besser (weil schneller) http://at.php.net

Ein einfaches Tutorial gibts dort auch: http://at.php.net/manual/de/tutorial.php

Eine gute Einführung als PDF gibts von Team ThinkPHP: www.thinkphp.de