Benutzer-Werkzeuge

Webseiten-Werkzeuge


db:webdatenbanken

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
db:webdatenbanken [2016/11/22 20:06]
roehner [Zugriff auf GET/POST]
db:webdatenbanken [2016/11/22 20:44] (aktuell)
roehner [Aufgaben]
Zeile 177: Zeile 177:
  
 ==== Zugriff auf eine MySQL-Datenbank ==== ==== Zugriff auf eine MySQL-Datenbank ====
-PHP stellt seit Version 5.1 eine neue Schnittstelle zum Zugriff auf Datenbanken bereit, die [[http://de2.php.net/manual/de/intro.pdo.php |PHP Data Objects (PDO)]].+PHP stellt derzeit drei Schnittstellen zum Zugriff auf MySQL/MariaDB-Datenbanken bereit
 +  - mysql - eine veraltete prozedurale Schnittstellenicht mehr in PHP 7 vorhanden 
 +  - mysqli - eine objektorientierte Schnittstelle ab PHP 5.
 +  - PDO_MySQL - eine streng objektorientierte Schnittstelle ab PHP 5.1
  
-Der MySQL-Datenbankserver pflegt eine eigene Benutzer- und Rechteverwaltung. Wir müssen uns also zunächst verbinden und authentifizieren. Dazu erzeugen wir ein Objekt der PDO-Klasse, dessen Konstruktor wir einen sogenannten Data Source Name (DSN), den Benutzernamen und das Passwort als Parameter übergeben:+ 
 +Der MySQL-Datenbankserver pflegt eine eigene Benutzer- und Rechteverwaltung. Wir müssen uns also zunächst verbinden und authentifizieren. Dazu erzeugen wir ein Objekt der mysqli-Klasse, dessen Konstruktor wir den Datenbankserver, den Benutzernamendas Passwort und die Datenbank als Parameter übergeben:
 <code php> <code php>
- $db = new PDO("mysql:host=localhost;dbname=inflk2009"<Benutzername><Passwort>);+  $mysqli @new mysqli($Datenbankserver$Benutzer$Passwort, $Datenbank);
 </code> </code>
-Über das [[http://de2.php.net/manual/de/class.pdo.php |PDO-Objekt]] können wir jetzt mittels SQL Abfragen durchführen.+Über das $mysqli-Objekt können wir jetzt SQL Abfragen durchführen.
 <code php> <code php>
- $query = $db->query("SELECT * FROM gaestebuch"); + $result = $mysqli->query("SELECT * FROM gaestebuch"); 
- $result $query->fetchAll(); + 
-  + while ($entry mysql_fetch_assoc($result)) {
- foreach($result as $entry) {+
    echo "Eintrag von " . $entry["absendername"];    echo "Eintrag von " . $entry["absendername"];
  }  }
-</code> 
- 
-Da der Schulserver aber PDO derzeit nicht unterstützt, muss die SQL-Verbindung über die MySQL-Funktionen von PHP aufgebaut werden: 
-<code php> 
- $db = mysql_connect("localhost", "<Benutzername>", "<Passwort>"); 
- mysql_select_db("<Datenbankname>", $db); 
    
- $query = mysql_query("SELECT * FROM gaestebuch", $db); 
-  
- while($entry = mysql_fetch_object($query)) { 
-   echo "Eintrag von " . $entry->absendername; 
- } 
 </code> </code>
 +
  
 ===== Aufgaben ===== ===== Aufgaben =====
-Ziel der u.g. Aufgaben ist ein sehr einfaches Gästebuch auf PHP-Basis mit Nutzung einer MySQL-Datenbank zum Speichern der Einträge. Zur Hilfe bei der Umsetzung gibt es [[http://schule.kai-wembacher.de/files/12/informatik/php/php-gaestebuch-vorlage.zip |HTML-Vorlagen]].+Ziel der u.g. Aufgaben ist ein sehr einfaches Gästebuch auf PHP-Basis mit Nutzung einer MySQL-Datenbank zum Speichern der Einträge. 
  
 **Aufgabe 1**\\ **Aufgabe 1**\\
Zeile 219: Zeile 212:
 **Aufgabe 2**\\ **Aufgabe 2**\\
 Bestehende Einträge anzuzeigen ist eine der Hauptaufgaben eines Gästebuchs. Die Einträge sollen nun auf der Startseite aufgelistet werden. Wir verzichten hierbei darauf, die Einträge auf mehrere Seiten zu verteilen, alle Einträge sollen auf einer einzelnen Seite gezeigt werden. (eintraege.php) Bestehende Einträge anzuzeigen ist eine der Hauptaufgaben eines Gästebuchs. Die Einträge sollen nun auf der Startseite aufgelistet werden. Wir verzichten hierbei darauf, die Einträge auf mehrere Seiten zu verteilen, alle Einträge sollen auf einer einzelnen Seite gezeigt werden. (eintraege.php)
- 
-Hierfür werden die [[http://de2.php.net/manual/de/intro.pdo.php PDO]] benötigt 
  
db/webdatenbanken.1479841572.txt.gz · Zuletzt geändert: 2016/11/22 20:06 von roehner