MySQL-Abfragen

Abfrage senden mit PDO

Um Tabellendaten einer bestimmten Datenbank abzufragen, werden die nachfolgenden PDO-Befehle verwendet.

PDOErstellung einer neuen Datenbankverbindung und Auswahl der Datenbank im Verbindungs-DSN
PDO::query()Senden einer SQL-Anweisung über die aktive PDO-Datenbankverbindung
PDO::exec() Ausführen einer SQL-Anweisung ohne Rückgabewerte.

Nachdem eine erfolgreiche Verbindung zum MySQL-Server hergestellt wurde, erfolgt die Auswahl der Datenbank direkt im Data Source Name (DSN). Eine Abfrage von Tabellendaten und deren Werten realisieren Sie über den Befehl PDO::query().

Syntax für die Erstellung einer PDO-Verbindung

$dsn = 'mysql:host=server;dbname=Datenbankname;charset=utf8'; //dsn ... data source name
$pdo = new PDO($dsn, 'Benutzername', 'Passwort');

Die Auswahl der zu verwendenden Datenbank erfolgt bereits in der $dsn-Zeichenkette durch Angabe des Datenbanknamens.

Der Rückgabewert von new PDO() ist ein PDO-Objekt, das für weitere SQL-Abfragen verwendet werden kann. Bei einem Fehler wird eine PDOException geworfen.

Syntax der PDO::query()-Anweisung

$stmt = $pdo->query('SQL-Abfrage');

Eine SQL-Abfrage wird über den Befehl PDO::query() ausgeführt.

Wenn die SQL-Anweisung erfolgreich ist, gibt query() ein PDOStatement-Objekt zurück, mit dem Sie auf die abgerufenen Daten zugreifen können.

Wenn ein Fehler auftritt, wird eine PDOException ausgelöst, wenn der Fehlermodus auf Exception gesetzt wurde.

Syntax der PDO::exec()-Anweisung

$ergebnis = $pdo->exec('SQL-Anweisung');

Verwenden Sie exec(), um SQL-Anweisungen auszuführen, die keine Ergebnisse zurückgeben (z.B. INSERT, UPDATE, DELETE). exec() gibt die Anzahl der betroffenen Zeilen zurück oder false, wenn ein Fehler auftritt.

Rückgabewerte

Beispiel db_connect.php

<?php
$server   = "localhost";
$user     = "root"; 
$passwort = "";
$database = "appelmann";
$table    = "bestellung";
 
try {
    // Verbindung zur Datenbank herstellen
    echo "<br>Nehme Verbindung zur Datenbank <b>$database</b> auf...";
    $dsn = "mysql:host=$server;dbname=$database;charset=utf8";
    $pdo = new PDO($dsn, $user, $passwort);
 
    // Fehlerbehandlung auf Exception setzen
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
    echo "<br>Verbindung zu Server <b>$server</b> hergestellt.";
 
    // SQL-Abfrage ausführen
    $sql = "SELECT * FROM $table";
    $stmt = $pdo->query($sql);
 
    if ($stmt) {
        echo "<br>SQL-Anweisung erfolgreich...";
    }
} catch (PDOException $e) {
    // Fehlerbehandlung
    echo "<br>Konnte Verbindung nicht herstellen oder SQL-Anweisung ausführen: " . $e->getMessage();
}
 
// Verbindung schließen
$pdo = null;
echo "<br>Verbindung zu Server <b>$server</b> beendet.";
?>