Lesen Sie Daten aus der MySQL-Datenbank
Mit der SELECT-Anweisung werden Daten aus einer Datentabelle gelesen:
Wählen Sie Spaltennamen aus Tabellennamen aus
Mit dem *-Zeichen können wir alle Felder in der Datentabelle lesen:
SELECT * FROM Tabellenname
Um mehr über SQL zu erfahren, besuchen Sie unsere SQL-Tutorials.
Verwendung von MySQLi
Im folgenden Beispiel lesen wir die Daten der Spalten id, firstname und lastname aus der MyGuests-Tabelle der myDB-Datenbank und zeigen sie auf der Seite an:
Beispiel (MySQLi – Objektorientiert)
<?php $ servername = " localhost " ; $ username = " username " ; $ dbname = " myDB " ;$conn = neu mysqli ( $servername , $username , $password , $dbname ) ; // Verbindung prüfen Wenn ( $conn -> connect_error ) { die ( " Verbindung fehlgeschlagen: " . $conn - > connect_error ) ; $sql = „ SELECT id, firstname, lastname FROM MyGuests “ ; $ result = $conn -> query ( $sql ) ; ( $result -> num_rows > 0 ) { // Daten ausgeben while ( $row = $result -> fetch_assoc ( ) ) { Echo " id : " . $ row [ " id " ] ." . $row [ " Nachname " ] . " <br> " ; } } anders { Echo „ 0 Ergebnisse “ ; $conn -> close ( ) ; > Der obige Code wird wie folgt analysiert:
Zuerst richten wir die SQL-Anweisung ein, um die drei Felder „id“, „firstname“ und „lastname“ aus der Datentabelle „MyGuests“ zu lesen. Anschließend rufen wir mit der geänderten SQL-Anweisung die Ergebnismenge aus der Datenbank ab und weisen sie der kopierten Variablen $result zu.
Die Funktion num_rows() ermittelt die zurückgegebenen Daten.
Wenn mehrere Daten zurückgegeben werden, fügt die Funktion fetch_assoc() die kombinierte Menge in ein assoziatives Array ein und gibt sie in einer Schleife aus. while() durchläuft die Ergebnismenge und gibt die drei Feldwerte id, firstname und lastname aus.
Das folgende Beispiel verwendet den prozessorientierten Ansatz von MySQLi und der Effekt ähnelt dem obigen Code:
Beispiel (MySQLi – Prozedurorientiert)
<?php $ servername = " localhost " ; $ username = " username " ; $ dbname = " myDB " ;$conn = mysqli_connect ( $servername , $username , $password , $dbname ) ; // Verbindung prüfen Wenn ( ! $conn ) { die ( " Verbindung fehlgeschlagen : " . mysqli_connect_error ( ) ) ; $sql = „ SELECT
id , firstname, lastname FROM MyGuests “ ; $result = mysqli_query ( $conn , $sql ) ; ( mysqli_num_rows ( $result ) > 0 ) { // Daten ausgeben while ( $row = mysqli_fetch_assoc ( $result ) ) { Echo " id : " . $ row [ " id " ] ." . $row [ " Nachname " ] . " <br> " ; } } anders { Echo „ 0 Ergebnisse “ ; mysqli_close ( $conn ) ; > Verwendung von PDO (+ Vorverarbeitung)
In den folgenden Beispielen werden vorbereitete Anweisungen verwendet.
Die Felder „ID“, „Vorname“ und „Nachname“ wurden aus der Tabelle „MyGuests“ ausgewählt und in der HTML-Tabelle platziert:
Beispiel (PDO)
<?php Echo " <table style='border: solid 1px black;' > " ; " <tr><th>Id</th><th>
Vorname </th><th>Nachname</th></tr> " ; Tabellenzeilen erstreckt sich RecursiveIteratorIterator { Funktion __construct ( $it ) { parent :: __construct ( $ it , self :: LEAVES_ONLY ) ; Funktion aktuell ( ) { zurückkehren " <td style='width:150px;border:1px solid black ; ' > " . parent :: current ( ) ; Funktion beginChildren ( ) { Echo " <tr> " ; Funktion endChildren ( ) { Echo " </tr> " .} $ servername = " localhost " ; $ password = " passwort " ; $ dbname = " myDBPDO " ; { $conn = neu PDO ( " mysql :host= $ servername ; dbname= $ dbname " , $ username , $ password ) ; $ conn -> setAttribute ( PDO :: ATTR_ERRMODE , PDO :: ERRMODE_EXCEPTION ) ; SELECT id, firstname, lastname FROM MyGuests " ) ; $stmt -> execute ( ) ; // Setze die Ergebnismenge als assoziatives Array $ result = $ stmt - > setFetchMode ( PDO :: FETCH_ASSOC ) ; TableRows ( neu RecursiveArrayIterator ( $stmt -> fetchAll ( ) ) ) als $k => $v ) { Echo $ v ; } Catch ( PDOException $e ) { Echo " Fehler: " . $e - > getMessage ( ) ; $conn = null ; echo " </table> " ? >