English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem教程 lernen Sie, wie Sie in PHP nach bestimmten Bedingungen Daten aus einer MySQL-Datenbanktabelle lesen.
WHEREDer Teil wird nur verwendet, um diejenigen Zeilen abzurufen, die den angegebenen Bedingungen entsprechen.
Die grundlegende Syntax des WHERE-Teils kann wie folgt gegeben werden:
SELECT column_name(s) FROM table_name WHERE column_name operator value
Lassen Sie uns eine SQL-Abfrage mit WHERE-Teil durchführen und diese an die PHP-Funktion mysqli_query() übergeben, um die gefilterten Daten abzurufen.
Angeheben Sie eine Personen-Tabelle in der demo-Datenbank, die die folgenden Einträge hat:
+----+------------+-----------+----------------------+ | 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-Code-Snippet auspersonsAlle Zeilen mit first_name = 'john' aus der Tabelle lesen:
<?php /* Versuchen Sie, eine Verbindung zum MySQL-Server herzustellen. Angenommen, Sie führen MySQL aus. Server mit Standardeinstellungen (Benutzer "root" ohne Passwort) */ $link = mysqli_connect("localhost", "root", "", "demo"); //Verbindung überprüfen if($link === false){ die("Fehler: Verbindung kann nicht hergestellt werden. " . mysqli_connect_error()); } //Versuchen Sie, die Abfrage auszuführen $_sql = "SELECT * FROM persons WHERE first_name='john'"; 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>"; // Ergebnisset schließen mysqli_free_result($result); } else{ echo "Kein Eintrag gefunden, der Ihrer Abfrage entspricht."; } } else{ echo "Fehler: Es konnte keine Ausführung von $sql durchgeführt werden. " . mysqli_error($link); } //Verbindung schließen mysqli_close($link); ?>
<?php /* Versuchen Sie, eine Verbindung zum MySQL-Server herzustellen. Angenommen, Sie führen MySQL aus. Server mit Standardeinstellungen (Benutzer "root" ohne Passwort) */ $mysqli = new mysqli("localhost", "root", "", "demo"); //Verbindung überprüfen if($mysqli === false){ die("Fehler: Verbindung kann nicht hergestellt werden. " . $mysqli->connect_error); } //Versuchen Sie, die Abfrage auszuführen $_sql = "SELECT * FROM persons WHERE first_name='john'"; 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>"; //Freigabe der Ergebnismenge $result->free(); } else{ echo "Kein Eintrag gefunden, der Ihrer Abfrage entspricht."; } } else{ echo "Fehler: Es konnte keine Ausführung von $sql durchgeführt werden. " . $mysqli->error; } //Verbindung schließen $mysqli->close(); ?>
<?php /* Versuchen Sie, eine Verbindung zum MySQL-Server herzustellen. Angenommen, Sie führen MySQL aus. Server 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: Verbindung kann nicht hergestellt werden. \->getMessage()); } //Versuchen Sie, die Abfrage auszuführen try{ $_sql = "SELECT * FROM persons WHERE first_name='john'"; $_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>"; //Freigabe der Ergebnismenge unset($result); } else{ echo "Kein Eintrag gefunden, der Ihrer Abfrage entspricht."; } } catch(PDOException $_e){ die("Fehler: Der Befehl $_sql kann nicht ausgeführt werden. \->getMessage()); } //Verbindung schließen unset($pdo); ?>
Nach dem Filteren wird das Ergebnis wie folgt aussehen:
+----+------------+-----------+---------------------+ | id | first_name | last_name | email | +----+------------+-----------+---------------------+ | 2 | John | Rambo | [email protected] | | 4 | John | Carter | [email protected] | +----+------------+-----------+---------------------+