====== MySQL-Abfragen ======
===== Abfrage senden mit PDO =====
Um Tabellendaten einer bestimmten Datenbank abzufragen, werden die nachfolgenden PDO-Befehle verwendet.
^PDO|Erstellung 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 ====
* PDO::query() gibt ein PDOStatement-Objekt zurück, wenn die Abfrage erfolgreich war, oder false, wenn ein Fehler aufgetreten ist.
* PDO::exec() gibt die Anzahl der betroffenen Zeilen oder false bei einem Fehler zurück.
===== Beispiel db_connect.php =====
Nehme Verbindung zur Datenbank $database 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 "
Verbindung zu Server $server hergestellt.";
// SQL-Abfrage ausführen
$sql = "SELECT * FROM $table";
$stmt = $pdo->query($sql);
if ($stmt) {
echo "
SQL-Anweisung erfolgreich...";
}
} catch (PDOException $e) {
// Fehlerbehandlung
echo "
Konnte Verbindung nicht herstellen oder SQL-Anweisung ausführen: " . $e->getMessage();
}
// Verbindung schließen
$pdo = null;
echo "
Verbindung zu Server $server beendet.";
?>