Heim >Datenbank >MySQL-Tutorial >Wie rufe ich alle Ergebnisse einer MySQLi LIKE-Abfrage ab?
Mehrere Datensätze aus MySQLi-LIKE-Abfragen abrufen
Die LIKE
-Abfragen von MySQLi können mehrere Ergebnisse liefern. Die Standardmethode fetch()
ruft jedoch nur die erste Zeile ab. In dieser Anleitung werden verschiedene Möglichkeiten zum Abrufen aller übereinstimmenden Datensätze beschrieben.
Methode 1: get_result()
und fetch_all()
Dies ist die bevorzugte Methode. get_result()
ruft die gesamte Ergebnismenge ab und fetch_all()
wandelt sie effizient in ein assoziatives Array um:
<code class="language-php">$param = "%{$_POST['user']}%"; $stmt = $db->prepare("SELECT id, username FROM users WHERE username LIKE ?"); $stmt->bind_param("s", $param); $stmt->execute(); $result = $stmt->get_result(); $data = $result->fetch_all(MYSQLI_ASSOC);</code>
Methode 2: Vorbereitete Anweisungen mit fetch()
und Looping
Dieser Ansatz verwendet vorbereitete Anweisungen mit bind_result()
und iteriert mit fetch()
, bis keine Zeilen mehr verfügbar sind:
<code class="language-php">$param = "%{$_POST['user']}%"; $stmt = $db->prepare("SELECT id, username FROM users WHERE username LIKE ?"); $stmt->bind_param("s", $param); $stmt->execute(); $stmt->bind_result($id, $username); while ($stmt->fetch()) { // Process each row ($id, $username) }</code>
Methode 3: execute_query()
(PHP 8.2 und höher)
Für PHP 8.2 und höher bietet execute_query()
eine prägnante Alternative:
<code class="language-php">$sql = "SELECT id, username FROM users WHERE username LIKE ?"; $result = $db->execute_query($sql, ["%{$_POST['user']}%"]); $data = $result->fetch_all(MYSQLI_ASSOC);</code>
Hilfreiche Ressourcen:
Das obige ist der detaillierte Inhalt vonWie rufe ich alle Ergebnisse einer MySQLi LIKE-Abfrage ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!