English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Tutorial werden Sie lernen, wie Sie sich mit PHP an einen MySQL-Server anhängen.
Um Daten in einer MySQL-Datenbank zu speichern oder darauf zuzugreifen, müssen Sie zunächst eine Verbindung zum MySQL-Datenbankserver herstellen. PHP bietet zwei verschiedene Methoden, um sich an den MySQL-Server anzuhängen:MySQLi(verbessertes MySQL) undPDO(PHP Datenobjekt) Erweiterung.
Obwohl der PDO-Name mehr Portabilität bietet und über zwölf verschiedene Datenbanken unterstützt, bedeutet der Name MySQLi-Name, dass er nur MySQL-Datenbanken unterstützt. Der MySQLi-Name bietet jedoch eine einfache Methode, um sich an einen MySQL-Datenbankserver anzuhängen und therein Abfragen auszuführen. PDO und MySQLi bieten beide eine objektorientierte API, aber MySQLi bietet auch eine prozedurale API, die für Anfänger relativ leicht zu verstehen ist.
Hinweis:Im Vergleich zur PDO-Erweiterung bietet die MySQLi-Erweiterung von PHP sowohl Geschwindigkeits- als auch Funktionsvorteile, daher könnte sie für spezifische MySQL-Projekte die bessere Wahl sein.
In PHP können Sie die Funktion mysqli_connect() leicht verwenden, um dies zu tun. Alle Kommunikation zwischen PHP und dem MySQL-Datenbankserver erfolgt über diese Verbindung. Hier sind die drei grundlegenden Syntaxen, um mit MySQLi und der PDO-Erweiterung eine Verbindung zum MySQL-Datenbankserver herzustellen:
$link = mysqli_connect("hostname", "username", "password", "database");
$mysqli = new mysqli("hostname", "username", "password", "database");
$pdo = new PDO("mysql:host=hostname;dbname=database", "username", "password");
In der obigen Syntax wird der hostname-Parameter verwendet, um den Hostnamen (z.B. localhost) oder die IP-Adresse des MySQL-Servers anzugeben, während die username- und password-Parameter die Anmeldeinformationen für den Zugriff auf den MySQL-Server angeben. Wenn ein Datenbankparameter bereitgestellt wird, wird dieser der Standarddatenbank angegeben, die verwendet wird, um Abfragen auszuführen.
Das folgende Beispiel zeigt, wie man mit MySQLi (Programmundobjektorientierteund die PDO-Erweiterung eine Verbindung zum MySQL-Datenbankserver herstellen.
<?php /* Verbindung zum MySQL-Server versuchen. Angenommen, Sie führen MySQL aus. Server mit Standardeinstellungen (Benutzer "root" ohne Passwort) */ $link = mysqli_connect("localhost", "root", ""); // Verbindung überprüfen if($link === false){ die("Fehler: Verbindung nicht möglich." . mysqli_connect_error()); } //Drucken der Host-Information echo "Verbindung erfolgreich. Host-Information: " . mysqli_get_host_info($link); ?>
<?php /* Verbindung zum MySQL-Server versuchen. Angenommen, Sie führen MySQL aus. Server mit Standardeinstellungen (Benutzer "root" ohne Passwort) */ $mysqli = new mysqli("localhost", "root", "", "demo"); // Verbindung überprüfen if($mysqli === false){ die("Fehler: Verbindung nicht möglich." . $mysqli->connect_error); } //Drucken der Host-Information echo "Verbindung erfolgreich. Host-Informationen: ". $mysqli->host_info; ?>
<?php /*Verbindung zum MySQL-Server versuchen. Angenommen, Sie führen MySQL aus. Server mit Standardeinstellungen (Benutzer "root" ohne Passwort) */ try{ $pdo = new PDO("mysql:host=localhost", "root", ""); //Setzen des PDO-Fehlermodus auf Exception $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //Drucken der Host-Information echo "Verbindung erfolgreich. Host-Informationen: ". $pdo->getAttribute(constant("PDO::ATTR_CONNECTION_STATUS")); } catch(PDOException $e){ die("Fehler: Verbindung nicht möglich. ". $e->getMessage()); } ?>
Hinweis: Der Standardbenutzername für den MySQL-Datenbankserver ist root, es gibt kein Passwort. Ancak, um den Datenbankzugriff zu schützen und unerlaubte Zugriffe zu verhindern, sollten Sie ein Passwort für das MySQL-Konto einrichten.
Hinweis:Die Einstellung von PDO::ATTR_ERRMODE auf PDO::ERRMODE_EXCEPTION teilt PDO mit, dass bei einem Datenbankfehler eine Ausnahme ausgelöst werden soll.
Nach dem Abschluss der Skriptausführung wird die Verbindung zum MySQL-Datenbankserver automatisch geschlossen. Wenn Sie jedoch vorzeitig schließen möchten, rufen Sie einfach die PHP-Funktion mysqli_close() auf.
<?php /*Verbindung zum MySQL-Server versuchen. Angenommen, Sie führen MySQL aus. Server mit Standardeinstellungen (Benutzer "root" ohne Passwort)*/ $link = mysqli_connect("localhost", "root", ""); // Verbindung überprüfen if($link === false){ die("Fehler: Verbindung nicht möglich." . mysqli_connect_error()); } // Drucken der Host-Information echo "Verbindung erfolgreich. Host-Information: " . mysqli_get_host_info($link); // Schließen der Verbindung mysqli_close($link); ?>
<?php /*Verbindung zum MySQL-Server versuchen. Angenommen, Sie führen MySQL aus. Server mit Standardeinstellungen (Benutzer "root" ohne Passwort) */ $mysqli = new mysqli("localhost", "root", "", "demo"); // Verbindung überprüfen if($mysqli === false){ die("Fehler: Verbindung nicht möglich." . $mysqli->connect_error); } // Drucken der Host-Information echo "Verbindung erfolgreich. Host-Information: " . $mysqli->host_info; // Schließen der Verbindung $mysqli->close(); ?>
<?php /* Verbindung zum MySQL-Server versuchen. Angenommen, Sie führen MySQL aus. Server mit Standardeinstellungen (Benutzer "root" ohne Passwort) */ try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", ""); //Setzen des PDO-Fehlermodus auf Exception $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //Drucken der Host-Information echo "Verbindung erfolgreich. Host-Information: " . $pdo->getAttribute(constant("PDO::ATTR_CONNECTION_STATUS")); } catch(PDOException $e){ die("Fehler: Verbindung nicht möglich." . $e->getMessage()); } //Schließen der Verbindung unset($pdo); ?>