English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP Grundlagenanleitung

PHP Fortgeschrittene Anleitung

PHP & MySQL

PHP Referenzhandbuch

PHP-MySQL-Daten lesen

In diesem Tutorial werden Sie lernen, wie man mit PHP Daten aus einer MySQL-Tabelle liest.

Daten aus der Datenbanktabelle lesen

Bis jetzt haben Sie erfahren, wie man Datenbanken und Tabellen erstellt und Daten eingefügt. Jetzt ist es an der Zeit, die Daten abzurufen, die in den vorangegangenen Tutorials eingefügt wurden. SQL SELECTAnweisung wird verwendet, um Daten aus der Datenbanktabelle zu lesen. Die grundlegende Syntax ist wie folgt:

SELECT column1_name, column2_name, columnN_name FROM table_name;

Lassen Sie uns die SELECT-Anweisung verwenden, um eine SQL-Abfrage durchzuführen. Danach werden wir diese Abfrage an die PHP mysqli_query() -Funktion weiterleiten, um die Tabellen Daten abzurufen.

Sehen Sie sich unserepersonsDie Datenbanktabelle hat die folgenden Einträge:

+----+------------+-----------+----------------------+
| id | first_name | last_name | email |
+----+------------+-----------+----------------------+
|}}  1 | Peter | Parker | [email protected] |
|}}  2 | John | Rambo | [email protected] |
|}}  3 | Clark | Kent | [email protected] |
|}}  4 | John | Carter | [email protected] |
|}}  5 | Harry | Potter | [email protected] |
+----+------------+-----------+----------------------+

Das folgende PHP-Beispiel wählt alle Daten aus der Tabelle persons aus (verwendet das Asterisk-Zeichen (*) anstelle von Spaltennamen, um alle Daten der Tabelle auszuwählen).

Beispiel: Prozeduraler Modus

<?php
/*MySQL-Serververbindung versuchen. Angenommen, Sie führen MySQL aus.
Dienst mit Standardeinstellungen (Benutzer "root" ohne Passwort) */
$link = mysqli_connect("localhost", "root", "", "demo");
 
//Verbindung überprüfen
if($link === false){
    die("Fehler: Verbindung fehlgeschlagen. " . mysqli_connect_error());
}
 
//Versuchen, eine Auswahlabfrage auszuführen
$sql = "SELECT * FROM persons";
if($result = mysqli_query($link, $sql)){
    if(mysqli_num_rows($result) > 0){
        echo "<table>";
            echo "<tr>";
                echo "<th>id</th>";
                echo "<th>first_name</th>";
                echo "<th>last_name</th>";
                echo "<th>email</th>";
            echo "</tr>";
        while($row = mysqli_fetch_array($result)){
            echo "<tr>";
                echo "<td>" . $row['id'] . "</td>";
                echo "<td>" . $row['first_name'] . "</td>";
                echo "<td>" . $row['last_name'] . "</td>";
                echo "<td>" . $row['email'] . "</td>";
            echo "</tr>";
        }
        echo "</table>";
        // Ergebnissatz freigeben
        mysqli_free_result($result);
    }
        echo "Kein Eintrag gefunden, der Ihrer Abfrage entspricht.";
    }
}
    echo "Fehler: Ausführung von $sql fehlgeschlagen. " . mysqli_error($link);
}
 
//Verbindung schließen
mysqli_close($link);
?>

Beispiel: Objektorientierter Modus

<?php
/*MySQL-Serververbindung versuchen. Angenommen, Sie führen MySQL aus.
Dienst mit Standardeinstellungen (Benutzer "root" ohne Passwort) */
$mysqli = new mysqli("localhost", "root", "", "demo");
 
//Verbindung überprüfen
if($mysqli === false){
    die("Fehler: Verbindung fehlgeschlagen. " . $mysqli->connect_error);
}
 
//Versuchen Sie, die Abfrage auszuführen
$sql = "SELECT * FROM persons";
if($result = $mysqli->query($sql)){
    if($result->num_rows > 0){
        echo "<table>";
            echo "<tr>";
                echo "<th>id</th>";
                echo "<th>first_name</th>";
                echo "<th>last_name</th>";
                echo "<th>email</th>";
            echo "</tr>";
        while($row = $result->fetch_array()){
            echo "<tr>";
                echo "<td>" . $row['id'] . "</td>";
                echo "<td>" . $row['first_name'] . "</td>";
                echo "<td>" . $row['last_name'] . "</td>";
                echo "<td>" . $row['email'] . "</td>";
            echo "</tr>";
        }
        echo "</table>";
        //Ergebnissatz freigeben
        $result->free();
    }
        echo "Kein Eintrag gefunden, der Ihrer Abfrage entspricht.";
    }
}
    echo "Fehler: Ausführung von $sql fehlgeschlagen. " . $mysqli->error;
}
 
//Verbindung schließen
$mysqli->close();
?>

Beispiel: PDO-Modus

<?php
/*MySQL-Serververbindung versuchen. Angenommen, Sie führen MySQL aus.
Dienst mit Standardeinstellungen (Benutzer "root" ohne Passwort) */
try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
    //PDO-Fehlermodus auf Ausnahme setzen
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
    die("Fehler: Die Verbindung konnte nicht hergestellt werden. ". $e->getMessage());
}
 
//Versuchen Sie, die Abfrage auszuführen
try{
    $sql = "SELECT * FROM persons";   
    $result = $pdo->query($sql);
    if($result->rowCount() > 0){
        echo "<table>";
            echo "<tr>";
                echo "<th>id</th>";
                echo "<th>first_name</th>";
                echo "<th>last_name</th>";
                echo "<th>email</th>";
            echo "</tr>";
        while($row = $result->fetch()){
            echo "<tr>";
                echo "<td>" . $row['id'] . "</td>";
                echo "<td>" . $row['first_name'] . "</td>";
                echo "<td>" . $row['last_name'] . "</td>";
                echo "<td>" . $row['email'] . "</td>";
            echo "</tr>";
        }
        echo "</table>";
        //Ergebnissatz freigeben
        unset($result);
    }
        echo "Kein Eintrag gefunden, der Ihrer Abfrage entspricht.";
    }
} catch(PDOException $e){
    die("Fehler: Die Ausführung von $sql konnte nicht durchgeführt werden. ". $e->getMessage());
}
 
//Verbindung schließen
unset($pdo);
?>

Verwendung des Codes (Programmstil)

Im obigen Beispiel wird die von der Funktion mysqli_query() zurückgegebene Daten in der Variablen $result gespeichert. Bei jedem Aufruf von mysqli_fetch_array() wird die nächste Zeile des Ergebnissatzes als Array zurückgegeben.while-Schleifeverwendet wird, um alle Zeilen im Ergebnissatz zu durchsuchen. Schließlich kann durch Übergabe des Feldindexes oder des Feldnamens an die Variable $row (z.B. $row['id'] oder $row[0], $row['first_name'] oder $row[1) um den Wert von $row['last_name'] oder $row[2) um den Wert von $row['email'] oder $row[3) um den Wert eines einzelnen Feldes aus einer Zeile abzurufen.

Wenn manfor-SchleifeMan kann die Anzahl der Zeilen, die der Loop durchlaufen soll, durch Übergabe des Variablenwertes $result an die Funktion mysqli_num_rows() ermitteln oder die Anzahl der Zeilen, die die Abfrage zurückgibt. Dieser Loop-Zähler bestimmt, wie oft der Loop ausgeführt werden soll.