# Mit PHP mysqli\_query Informationen aus einer MySQL/MariaDB-Datenbank abrufen

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.

## Anforderungen

Um mit [PHP](https://www.ionos.de/digitalguide/websites/web-entwicklung/was-ist-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](https://www.ionos.de/digitalguide/server/knowhow/was-ist-apache/) oder [Nginx](https://www.ionos.de/digitalguide/server/konfiguration/nginx-grundlagen-installation-und-einrichtung/). Wenn Sie also noch keine Umgebung haben, müssen Sie zunächst [PHP installieren](https://www.ionos.de/digitalguide/websites/web-entwicklung/php-installieren/). Zusätzlich muss [MySQL](https://www.ionos.de/digitalguide/server/knowhow/was-ist-mysql/) oder [MariaDB](https://www.ionos.de/digitalguide/server/knowhow/was-ist-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](https://www.ionos.de/digitalguide/websites/web-entwicklung/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:

```none
mysql -u root -p
```

Erstellen Sie eine Datenbank für die Reviews:

```none
CREATE DATABASE reviews;
```

Wechseln Sie zu dieser Datenbank:

```none
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](https://www.ionos.de/digitalguide/hosting/hosting-technik/mariadb-create-table/)-Befehl:

```none
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:

```none
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:

```none
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:

```none
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](https://www.ionos.de/digitalguide/websites/webdesign/was-ist-css/)-Styling ist im HTML-Head zu finden:

```HTML
<!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>
```

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

```HTML
<?php
```

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

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

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.

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

### 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:

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

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

```HTML
<?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
}
?>
```

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

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

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

[![Bild: Anzeige von showreviews.php im Browser](https://www.ionos.de/digitalguide/fileadmin/_processed_/6/a/csm_mysql-mariadb-php-info_cb4362a58b.webp "Anzeige von showreviews.php im Browser")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2025/mysql-mariadb-php-info.jpg) Die Tabelle wird nun im Browser angezeigt. ### Schritt 5: Überblick - das fertige Skript

Das vollständige PHP-Skript lautet:

```HTML
<!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>
```


This is a markdown version of: [https://www.ionos.de/digitalguide/websites/web-entwicklung/mit-php-informationen-aus-einer-mysql-mariadb-datenbank-abrufen/](https://www.ionos.de/digitalguide/websites/web-entwicklung/mit-php-informationen-aus-einer-mysql-mariadb-datenbank-abrufen/) for AI/LLM consumption.