Datenbankverbindung aufbauen
In PHP existieren drei Varianten um auf eine MySQL Datenbank zuzugreifen. Die älteste nutzt die MySQL Erweiterung , die aber seit PHP 5.5.0 als veraltet (deprecated) markiert wurde und in PHP 7 komplett entfernt wurde. Die zweite Möglichkeit ist mittels der MySQL Improved Extension (MySQLi) und die letzte Möglichkeit ist mittels PHP Data Objects (PDO) .
PDO ist dabei das aktuellste Interface um auf Datenbank zuzugreifen und besitzt gegenüber MySQLi einige neue nette Funktionen und den großen Vorteil, dass es auch mit anderen Datenbanksystemen zusammenarbeiten kann. In diesem Tutorial fokussieren wir uns ausschließlich auf PDO. Sucht ihr nach Scripts im Internet, dann findet ihr oft noch welche die die veraltete MySQL Erweiterung nutzen oder die MySQLi nutzen. Lasst euch davon nicht verwirren. Der Unterschied zwischen der originalen MySQL Erweiterung, MySQLi und PDO ist nicht so sonderlich groß.
Falls ihr dennoch an der original MySQL-Erweiterung oder an der MySQLi-Erweiterung interessiert seid, beispielsweise um Code den ihr im Internet gefunden habt zu verstehen, gibt es noch den Crashkurs MySQL, Crashkurs MySQLi und Crashkurs PDO. Diese listen die wichtigsten Funktionen auf ohne viel Erklärung.
Mit der Datenbank verbinden
Bevor ihr Anfragen an die Datenbank stellen könnt, müsst hier zuerst eine Verbindung aufbauen. Es empfiehlt sich, diesen Code immer am Anfang eurer Scripts stehen zu haben. Das Verbinden zur MySQL Datenbank mittels PDO funktioniert mittels der Klasse PDO . Sobald die Datenbankverbindung aufgebaut ist, könnt ihr beliebig viele Anfragen an die Datenbank senden. Die Verbindung wird auch automatisch geschlossen, sobald eurer Script beendet wurde.
Datenbankverbindung mittels PDO:
1 2 3 |
<?php $pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); ?> |
Als host gebt ihr den Hostnamen der Datenbank an. Oftmals ist dies localhost. Bei gewissen Hostinganbietern kann dieser aber abweichen. Nähere Informationen dazu findet ihr meistens auf der Website eures Hosters. Danach folgt der Datenbankname, in diesem Fall test. Diese Datenbank haben wir zuvor per phpMyAdmin erstellt. Die letzten zwei Parameter sind der Benutzername und das Passwort. Hier könnt ihr lokal entweder den Benutzer 'root' verwenden mit einem leeren Passwort '' oder die Zugangsdaten die ihr im vorherigen Schritt erstellt hattet.
Umlaute und UTF-8 Zeichensatz
Umlaute wie ä, ö, oder ü, und deren korrekte Speicherung und Darstellung, sind leider stets ein leidiges Thema. Damit man möglichst wenig Stress mit dieser Problematik hat, empfehle ich die konsequent den UTF-8 Zeichensatz zu verwenden. Diesen solltet ihr sowohl für eure Dateien, als auch für das ausgegebene HTML nutzen. Ebenfalls sollten Text-Spalten in euren MySQL-Tabellen auf UTF-8 setzen (später mehr dazu).
Meistens wird bei der MySQL-Verbindung bereits der passende Zeichensatz ausgewählt. Solltet dies aufgrund einer unpassenden PHP / MySQL-Konfiguration nicht der Fall sein, könnt ihr wie folgt beim Verbindungsaufbau den gewünschten Zeichensatz auswählen:
1 2 3 |
<?php $pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'username', 'password'); ?> |
Durch die Angabe von charset hinter dbname wählt ihr den gewünschten Zeichensatz. Sofern ihr nicht UTF-8 verwendet, müsst ihr dort den für euch passenden Zeichensatz auswählen.
Autor: Nils Reimers