Dieses Beispiel einer Datenbankabfrage (Query) zeigt Schritt für Schritt, wie sich mit der PHP Funktion mysqli, Daten aus einer MySQL Tabelle abbilden lassen. Die einzelnen PHP Funktionen, die dafür nötig sind, werden dabei in objektorientierter Form (OOP) verwendet.
<?php
// Zugangsdaten für die Datenbank
$db_host = 'datenbank-host';
$db_user = 'datenbank-user';
$db_name = 'datenbank-name';
$db_pass = 'datenbank-passwort';
// Neue Datenbankverbindung herstellen
$db = new mysqli($db_host, $db_user, $db_pass, $db_name);
// Zeichenkodierung der SQL Verbindung bestimmen (optional)
$db->set_charset('utf8');
// Eine SQL SELECT Abfrage formulieren.
// In diesem Beispiel aus der Datenbank einer TYPO3 Installation
$sql = <<<SQL
SELECT uid, header
FROM tt_content
WHERE 1 AND deleted = 0 AND hidden = 0 AND header LIKE '%TYPO3%'
ORDER BY uid DESC
LIMIT 10;
SQL;
// Meldung falls die SQL Abfrage fehlerhaft ist
if(!$result = $db->query($sql)) {
die('Fehler beim Ausführen der Datenbankabfrage:<br>' . $db->error);
} else { // Wenn die SQL Abfrage ohne Fehler ist
// Ergebnisse als while-Schleife ausgeben
while($row = $result->fetch_assoc()) {
echo '<div class="zeile">' . $row['uid'] . ': ';
echo $row['header'] . '</div>';
}
// Gesamte Anzahl an Datensätzen
echo '<div class="gesamt"><p>Alle Ergebnisse: ' . $result->num_rows . '</p></div>';
// Anzahl Datensätze, die von einem SQL UPDATE oder DELETE betroffen wären
echo '<div class="aktualisiert"><p>Aktualisierte Ergebnisse: ' . $db->affected_rows . '</p></div>';
}
// Die Datenbankverbindung schließen, wenn alles erledigt ist.
$db->close();
?>
Das PHP MySQLi Snippet beinhaltet bereits ein paar grundlegende if else Kontrollstrukturen, sollte aber für den produktiven Einsatz unbedingt erweitert werden. Safty first ;-)