Verbindung herstellen
Mit Datenbankserver verbinden
Um eine mySQL Datenbank zu öffnen benötige ich den Datenbank Server Namen beim Host, den Benutzernamen und das Kennwort.
Der Servername ist im heimischen XAMPP "localhost". Benutzername und Kennwort ist das, was wir bei den MySQL Einstellungen verwendet haben (bei mir zuhause war das per Default "root" und "sagichnicht").
mysql_connect()
<?php
mysql_connect("localhost", "root", "sagichnicht");
?>
Achtung: Der Hoster hat aber meine Datenbanken auf einem eigenen Datenbank-Server,
in dem Fall muss dann ein anderer Pfad zu dem Server angegeben werden (siehe weiter unten:
Die Verbindungen auslagern).
Zudem habe ich hier natürlich nicht die richtigen Pfade und Passworte angegeben.
Mit Datenbank verbinden
Zuhause auf meinem Xampp Server habe ich eine eigene MySQL-Datenbank mit dem Namen 'pflanze' geschaffen, die ich hier immer verwende - siehe MySQL.
Der Datenbankname wird oft vom Hoster vorgegeben.
mysql_select_db()
<?php
mysql_select_db("pflanzen");
?>
Die Verbindungen auslagern
Für ein Projekt wird nur eine, immer die selbe Datenbank benötigt,
das Verbindungs-Script kann also ausgelagert werden (wie ein externes JavaScript oder CSS)
und via 'include' aufgerufen werden.
Das Auslagern der Verbindungs hat den Vorteil, dass ich nur dieses eine Script ändern muss,
wenn ich den Datenbank-Server wechsle (z.B. das Projekt von zuhause zu einem Host verschieben).
Alle Fehlermeldungen müssen auf dem produktiven Server ausgeschaltet werden.
Wenn etwas nicht funktioniert, kann der Fehler an der Verbindung zum Server oder
an der Auswahl der Datenbank liegen. Darum binde ich entsprechende Fehlermeldungen mit:
'or die ("Meldung");' ein, noch vor dem Abschluss des Befehls.
Auf dem produktiven Server, sind Fehlermeldungen jedoch nicht sinnvoll, ja eigentlich schädlich,
da sie einem Angreifer Hinweise geben. (Siehe Fehler)
Die fertige, ausgelagerte Script-Datei sieht dann (in einer Variablen namens '$verbindung') so aus:
<?php
# für Zuhause
$verbindung = mysql_connect("localhost", "root", "sagichnicht")
or die("Fehlermeldung: Keine Verbindung zum Server");
mysql_select_db("pflanzen")
or die("Fehlermeldung: Keine Datenbank pflanzen gefunden");
?>
Ausgelagerte Verbindung einbetten
In der Datei, in der wir die Datenbank 'pflanzen' abfragen wollen, steht nun zuoberst -
noch vor dem <html>-Tag:
<?php
include("datenbankkonnektion.php");
?>
(Der Befehl 'require' statt 'include' würde im Falle eines Fehlers das Script sofort abbrechen und gäbe keine Fehlermeldung aus.)