Mit PHP lassen sich Informationen unkompliziert aus einer MySQL- oder MariaDB-Datenbank abrufen. Dazu wird eine Verbindung zur Datenbank hergestellt und anschließend mit PHP mysqli_query() eine SQL-Abfrage ausgeführt, deren Ergebnisse weiterverarbeitet werden können.

Managed Database Services
Datenbanken – Auf´s Wesentliche konzentrieren
  • IONOS Cloud-Partner: Die Experten für Ihren Datenbank-Betrieb
  • Flexibel: Maßgeschneiderte Datenbank-Lösungen ganz auf Ihre Bedürfnisse
  • Rechenzentren in Deutschland: Ihre Daten sind sicher

Anforderungen

Um mit PHP Informationen aus einer MySQL- oder MariaDB-Datenbank abrufen zu können, müssen einige grundlegende Anforderungen erfüllt sein. Zunächst benötigt man eine funktionierende PHP-Umgebung auf dem Server, häufig in Kombination mit einem Webserver wie Apache oder Nginx. Wenn Sie also noch keine Umgebung haben, müssen Sie zunächst PHP installieren. Zusätzlich muss MySQL oder MariaDB installiert sein. Auf PHP-Seite ist außerdem die MySQLi-Erweiterung erforderlich, die in den meisten Standardinstallationen jedoch bereits enthalten ist.

Mit PHP Informationen aus MySQL/MariaDB abrufen

In diesem Tutorial zeigen wir, wie man eine einfache MySQL/MariaDB-Datenbank samt Tabelle und User anlegt und anschließend per PHP darauf zugreift. Schritt für Schritt entsteht so eine kleine Beispiel-Webseite, die gespeicherte Restaurant-Bewertungen direkt aus der Datenbank abfragt und in einer HTML-Tabelle ausgibt.

Schritt 1: Datenbank anlegen

In einem ersten Schritt muss die Datenbank erstellt werden. Melden Sie sich hierzu am MySQL/MariaDB-Client der Befehlszeile an:

mysql -u root -p

Erstellen Sie eine Datenbank für die Reviews:

CREATE DATABASE reviews;

Wechseln Sie zu dieser Datenbank:

USE reviews;

Für dieses Beispiel werden wir nur eine Tabelle erstellen. Diese wird drei Felder haben:

  • ID-Feld: Die ID ist der Schlüssel der Tabelle und wird auf Auto-Inkrement gesetzt.
  • Name des Prüfenden: Ein Textfeld mit einer Länge von bis zu 100 Zeichen.
  • Sternenbewertung: Eine numerische Bewertung von 1-5 TINYINT
  • Überprüfen Sie die Details: Ein Textfeld mit einer Grenze von ca. 500 Wörtern. VARCHAR(4000)

Erstellen Sie die Tabelle mit dem CREATE-TABLE-Befehl:

CREATE TABLE user_review (
id MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
reviewer_name VARCHAR(100),
star_rating TINYINT,
details VARCHAR(4000)
);

Nun fügen wir zwei Beispielrezensionen zur Tabelle hinzu:

INSERT INTO user_review (reviewer_name, star_rating, details) VALUES ('Ben', '5', 'Love the calzone!');
INSERT INTO user_review (reviewer_name, star_rating, details) VALUES ('Leslie', '1', 'Calzones are the worst.');

Schritt 2: Datenbankuser anlegen

Legen Sie in einem nächsten Schritt einen User für die Datenbank an. Aus Sicherheitsgründen ist es immer am besten, für jede Datenbank einen eindeutigen Benutzer bzw. eine eindeutige Benutzerin anzulegen, insbesondere wenn von einer Website aus auf diese Datenbank zugegriffen wird.

Der folgende Befehl erstellt einen User namens review_site mit dem Passwort JxSLRkdutW und gewährt ihm Zugriff auf die soeben erstellte Datenbank:

CREATE USER 'review_site'@'localhost' IDENTIFIED BY 'JxSLRkdutW';
GRANT SELECT ON reviews.* TO 'review_site'@'localhost';

Schritt 3: PHP-Skript erstellen

Hinweis

Der Code in diesem Tutorial ist vereinfacht, um Beispiele zu zeigen. Bei der Erstellung einer Website empfehlen wir Ihnen dringend, gängige Sicherheitspraktiken zu befolgen, um sicherzustellen, dass Ihre PHP-Skripte den Zugriff auf den Server nicht einschränken.

Erstellen Sie eine Datei showreviews.php in Ihrem Webspace und öffnen Sie sie zur Bearbeitung. Um beispielsweise die Datei im Verzeichnis /var/www/html zu erstellen, lautet der Befehl mit dem Editor nano:

sudo nano /var/www/html/showreviews.php

In unserem Beispiel wird das PHP in HTML eingebettet sein, so dass die Seite mit den grundlegenden HTML-Deklarationen beginnt. Auch das CSS-Styling ist im HTML-Head zu finden:

<!doctype html>
<html>
<head>
<meta-charset="utf-8">
<style>
    table {
        border-collapse: collapse;
        margin: 20px auto;
        width: 80%;
    }
    th, td {
        border: 1px solid black;
        padding: 5px 10px;
        text-align: left;
    }
</style>
</head>
<body>
HTML

Jedes PHP-Skript muss mit dem Tag PHP opening beginnen:

<?php
HTML

Als nächstes fügen Sie einen MySQL/MariaDB-Verbindungsblock mit dem Serverstandort (localhost), dem Datenbanknamen sowie dem Datenbank-Usernamen und -Passwort hinzu.

$hostname = "localhost";
$username = "review_site";
$password = "JxSLRkdutW";
$db = "reviews";
HTML

Anschließend fügen wir einen Abschnitt hinzu, um eine Verbindung zur Datenbank herzustellen. Wenn die Verbindung fehlschlägt, wird eine Fehlermeldung ausgegeben. Sie können zwischen Ihrem PHP-Skript und Ihrer Datenbank in MySQL und MariaDB mit mysqli_connect() eine Verbindung aufbauen. Dabei werden Hostname, Benutzername, Passwort und der Datenbankname übergeben, sodass PHP genau weiß, mit welcher Datenbank es arbeiten soll.

$dbconnect=mysqli_connect($hostname,$username,$password,$db);
if (!$dbconnect) {
die("Database connection failed: " . mysqli_connect_error());
}
?>
HTML

Schritt 4: Tabelle einfügen

In einem nächsten Schritt fügen Sie in Ihrem Skript den HTML-Code hinzu, um die Tabelle zu beginnen, die wir zur Anzeige der Daten verwenden werden:

<table>
<tr>
<td>Reviewer Name</td>
<td>Stars</td>
<td>Details</td>
</tr>
HTML

Danach folgt der PHP-Code, der die Datenbank abfragt und die Ergebnisse durchläuft und jeden Review in einer eigenen Tabellenzeile anzeigt:

<?php
$query = mysqli_query($dbconnect, "SELECT * FROM user_review")
or die (mysqli_error($dbconnect));
while ($row = mysqli_fetch_array($query)) {
echo
"<tr>
<td>{$row['reviewer_name']}</td>
<td>{$row['star_rating']}</td>
<td>{$row['details']}</td>
</tr>\n
}
?>
HTML

Denken Sie am Ende des Dokumentes daran, die Tabelle und den HTML-Block zu schließen:

</table>
</body>
</html>
HTML

Um das Skript zu testen, besuchen Sie showreviews.php in einem Browser.

Bild: Anzeige von showreviews.php im Browser
Die Tabelle wird nun im Browser angezeigt.

Schritt 5: Überblick - das fertige Skript

Das vollständige PHP-Skript lautet:

<!doctype html>
<html>
<head>
<meta-charset="utf-8”>
<style>
    table {
        border-collapse: collapse;
        margin: 20px auto;
        width: 80%;
    }
    th, td {
        border: 1px solid black;
        padding: 5px 10px;
        text-align: left;
    }
</style>
</head>
<body>
<?php
$hostname = "localhost";
$username = "review_site";
$password = "JxSLRkdutW";
$db = "reviews";
$dbconnect=mysqli_connect($hostname,$username,$password,$db);
if (!$dbconnect) {
die("Database connection failed: " . mysqli_connect_error());
}
?>
<table>
<tr>
<td>Reviewer Name</td>
<td>Stars</td>
<td>Details</td>
</tr>
<?php
$query = mysqli_query($dbconnect, "SELECT * FROM user_review")
or die (mysqli_error($dbconnect));
while ($row = mysqli_fetch_array($query)) {
echo
"<tr>
<td>{$row['reviewer_name']}</td>
<td>{$row['star_rating']}</td>
<td>{$row['details']}</td>
</tr>\n";
}
?>
</table>
</body>
</html>
HTML
War dieser Artikel hilfreich?
Zum Hauptmenü