English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP Grundanleitung

PHP Fortgeschrittene Anleitung

PHP & MySQL

PHP Referenzhandbuch

PHP-MySQL-Verbindung

In diesem Tutorial werden Sie lernen, wie Sie sich mit PHP an einen MySQL-Server anhängen.

Verbindungen zu MySQL über PHP herstellen

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.

Verbindung zum MySQL-Datenbankserver herstellen

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:

Syntax: MySQLi, programmatische Methode

$link = mysqli_connect("hostname", "username", "password", "database");

Syntax: MySQLi, objektorientierte Methode

$mysqli = new mysqli("hostname", "username", "password", "database");

Syntax: PHP-Datenobjekt (PDO) - Methode

$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.

Online-Beispiel

<?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.

Schließen der Verbindung zum MySQL-Datenbankserver

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.

Online-Beispiel

<?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);
?>