21.8 Dateien einbinden
Bei dynamischen Websites benötigen Sie viele Skripts, die sich auf jeder Unterseite wiederholen. So zum Beispiel für die Konnektierung zur MySQL-Datenbank. Diese immer wiederkehrenden Skripts können ähnlich wie externe CSS-Stile dynamisch eingebunden werden.
Durch das Einbinden externer Skripts wird eine Website leichter pflegbar. Änderungen können an zentraler Stelle durchgeführt werden, und die Skripts können eventuell für spätere Projekte wieder verwendet werden.
Namensvergabe für externe Skripts | Achten Sie bei der Namensvergabe externer Skripts auf die Schreibweise. Kennzeichnen Sie diese eindeutig als include-Dateien, also Dateien, die eingebunden (Engl. include) werden. Sie erreichen dies, indem Sie das Kürzel inc in den Dateinamen einfügen.
Benennen Sie jedoch die Dateien in keinem Fall datei.inc, sondern immer mit der Dateiendung .php. Dateibezeichnungen in der Form datei.inc.php haben sich bewährt und werden häufig für include-Dateien verwendet. Würde ein User, mit oder ohne Absicht, eine Datei mit der Endung .inc aufrufen, würde diese als Text angezeigt oder zum Download angeboten. Besonders für sensible Zugangsdaten sollte das unter allen Umständen vermieden werden. Durch die Extension .php stellen Sie sicher, dass die Datei bei einem direkten Aufruf verarbeitet wird. Im Browser wird dann schlimmstenfalls eine Fehlermeldung angezeigt.
PHP unterstützt gleich mehrere Möglichkeiten, Skripts einzubinden. Die einzelnen Befehle unterscheiden sich durch die Art und Weise, wie die externen Skripts eingebunden werden.
Abbildung 21.7 Externe Dateien einbinden
PHP-Befehl | Funktionsweise |
include(ZIEL) |
Bindet eine externe Datei ein und führt diese innerhalb des Skripts aus. Fehlt die Datei, gibt es eine PHP-Warnung, das Hauptskript wird dennoch ausgeführt. |
include_once(ZIEL) |
Bindet eine externe Datei ein und führt diese innerhalb des Skripts aus. Diese Schreibweise stellt sicher, dass externe Dateien nur einmal eingebunden werden. Fehlt die Datei, gibt es eine PHP-Warnung, das Hauptskript wird dennoch ausgeführt. |
require(ZIEL) |
Bindet eine externe Datei ein. Fehlt die Datei, gibt es einen Fatal-Error, das Hauptskript wird nicht ausgeführt. |
require_once(ZIEL) |
Bindet eine externe Datei ein. Diese Schreibweise stellt sicher, dass externe Dateien nur einmal eingebunden werden. Fehlt die Datei, gibt es einen Fatal-Error, das Hauptskript wird nicht ausgeführt. |
Tabelle 21.3 Einbinden externer Dateien mit PHP
21.8.1 Mit MySQL verbinden
Vor jeder Abfrage muss eine Verbindung zu einer Datenbank aufgebaut werden. Für MySQL erfolgt das mit den folgenden Befehlen:
Listing 21.11 Datenbankverbindung zu MySQL herstellen
// MySQL Servername $dbhost = "HOST"; // MySQL Benutzername $dbuser = "USER"; // MySQL Password $dbpasswd = "PASS"; // MySQL SERVER CONNECT $db=mysql_connect("$dbhost","$dbuser","$dbpasswd");
In den Variablen $dbhost, $dbuser und $dbpasswd werden die Zugangsdaten für den Server an die PHP-Funktion mysql_connect() übergeben und an MySQL geschickt. Eine bestimmte Datenbank wird hier noch nicht ausgewählt.
21.8.2 MySQL-Datenbanken abfragen
Nach dem Herstellen einer Verbindung zu MySQL müssen Sie zunächst die abzufragende Datenbank selektieren:
Listing 21.12 Datenbank auswählen
// MySQL Datenbankname $db_name="DATENBANKNAME"; mysql_select_db($db_name,$db);
Erst jetzt ist es möglich, eine konkrete Abfrage an MySQL zu senden:
$abfrage = "SELECT * FROM TABELLE"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)) { echo "$row->headline"; // Ausgabe } mysql_free_result($ergebnis);
Listing 21.13 Datenbank abfragen
In unserem Beispiel wird mit $row ein Objekt aus den von MySQL zurückgegebenen Daten erstellt und innerhalb einer while-Schleife ausgegeben. Die eigentliche SQL-Anweisung wird als String an MySQL geschickt.