HTML, CSS, PHP, MySQL

html-php.de

HTML & CSS Stylesheets Referenz JavaScript PHP MySQL Sonstiges Gästebuch Inhalt Impressum

[ MySQL-Datenbanken ] [ Feldtypen ] [ PHPMyAdmin ] [ Datenbank-Zugriff ]

MySQL-Datenbanken

In einer Datenbank können Sie beliebige Daten speichern und Verwalten. Jede Datenbank kann mehrere Tabellen enthalten, die wiederum mehrere Spalten hat. So können Sie z.B. Adressen, Buch, DVD´s oder ein Gästebuch verwalten. Wie Sie auf MySQL-Datenbanken möcht ich anhand eines Gästebuches hier Schritt für Schritt erklären. Hier findex Sie ein Demo dieses Gästebuches und können zum nachvollziehen hier Downloaden.
Zuerst überlegen wir uns, welche Daten wir brauchen:
Zuerst einmal die Daten des Users, der sich ins Gästebuche einträgt. also Name, eMail-Adresse und Homepage und zur Sicherheit die IP-Adresse. Dann noch das Datum und Uhrzeit sowie das wichtigste, der Beitrag.
Ausserdem legen wir noch eine zweite Tabelle für den Spamschutz mit den Feldern Datum, Uhrzeit und Spamcode an.

Feldtypen

Anders als bei PHP spielen bei Datenbanken die Feldtypen eine Rolle, so können Sie in einem Feld für Fließkommazahlen kein Text speichern.
Folgende Feldtypen sind möglich:

INTganzzahlige Zahlen zwischen -2,1 bis +2,1 Mio
VARCHAR(x)max. 255 beliebige Zeichen (statt x muss die Anzahl der Zeichen angegeben werden
DATETIMEDatum und Uhrzeit
TEXTText bis zu 65000 Zeichen.
DOUBLEFließkommazahl

Dieses sind die wichtigsten Typen, es gibt aber noch mehr, auf die ich (noch) nicht näher eingehen möchte.

Die Strukture unserer Datenbank wird wie folgt aussehen:

Datenbank: GASTBUCH
    Tabelle: Beitrag
FeldnameFeldtypErläuterung
IDINT AUTO_INCREMENT PRIMARY KEYID-Nr. des Eintrages (wird automatisch vergeben)
NameVARCHAR(30)Name des Users
eMailVARCHAR(70)eMail-Adresse
HPVARCHAR(70)Homepage des Users
IPVARCHAR(16)IP des Users
ZeitINT(11)Datum und Uhrzeit des Eintrages
BeitragTEXTDer Beitrag des Users
KommentarTEXTKommentar des Gastbuchinhabers

   Tabelle: Spam
FeldnameFeldtypErläuterung
IDINT AUTO_INCREMENT PRIMARY KEYID-Nr. des Eintrages (wird automatisch vergeben)
CodeVARCHAR(6)Spam-Code
ZeitINT(11)Datum und Uhrzeit

PHPMyAdmin

In der Regel bekommen Sie den Datenbankname von Ihrem Webspace-Anbieter. Mit dem Programm PHPMyAdmin können Sie dann die Administration übernehmen. Sie haben hiermit die Möglichkeit Tabellen anzulegen, Auswertungen vorzunehmen, oder Daten einzugeben, bzw. zu bearbeiten.

Zugriff auf die Datenbank mit PHP

Um mit PHP auf eine Datenbank zuzugreifen, benötigen Sie folgende Angaben, die Sie in der Regel von Ihrem Webspace-Anbieter bekommen.

Serverz.B. localhost
Benutzernamez.B. Benutzer
Passwortz.B. Password
Datenbanknamez.B. Databases

Am besten speichern Sie diese Daten in eine Datei, z.B. zugriff.php in ein durch .htaccess geschütztes Unterverzeichniss, und binden diese über ein include in Ihren PHP-Dateien ein, da dieser Code-Schnipsel evtl. mehrmals in diversen PHP-Dateien benötigen.

  <?php
   define("MYSQL_HOST",     "localhost");  
   define("MYSQL_USER",     "benutzer");
   define("MYSQL_PASS",     "passwort");
   define("MYSQL_DATABASE", "Gastbuch");
   $dblink = mysqli_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DATABASE);
   if (mysqli_connect_errno()) {
      die('Verbindung fehlgeschlagen');
  ?>

Um Kontakt mit der Datenbank aufzunehmen, benutzen Sie die Funktion mysqli_connect(), die eine Variable eines Zeigers der Datenbank zurückgibt, die später für den Zugriff benötigt wird. Daher speichern Sie diese am besten in der Variablen $dblink für Datenbankzeiger.
Ist eine Funktion nicht erfolgreich, kann das Script mit die('Fehlertext') abgebrochen werden. Fehlt diese Funktion, werden folgende Anweisungen ausgeführt.
Normalerweise wird die Datenbankverbindung automatisch wieder geschlossen. Wenn aber nach dem Abrufen der Ergebnisse noch umfangreiche Verarbeitungsschritte erforderlich sind, kann die Datenbank mit mysql_close() geschlossen werden. Das ganze sieht dann so aus:

  <?php
    include 'inc/zugriff.php';
  ?>
  ... hier folgt weiterer Code ...
  <?php
    mysqli_close($dblink);
  ?>  

back top next