Heim > Datenbank > MySQL-Tutorial > Wie kann ich alle Ergebnisse einer MySQLi LIKE-Abfrage mit mehreren Übereinstimmungen effizient abrufen?

Wie kann ich alle Ergebnisse einer MySQLi LIKE-Abfrage mit mehreren Übereinstimmungen effizient abrufen?

Linda Hamilton
Freigeben: 2025-01-20 06:08:08
Original
1033 Leute haben es durchsucht

How to Efficiently Retrieve All Results from a MySQLi LIKE Query with Multiple Matches?

Abrufen aller Übereinstimmungen aus einer MySQLi LIKE-Abfrage

Das Arbeiten mit MySQLi LIKE-Abfragen in PHP, insbesondere wenn mehrere Ergebnisse erwartet werden, erfordert eine sorgfältige Handhabung, um sicherzustellen, dass alle übereinstimmenden Datensätze abgerufen werden. Im Folgenden werden effiziente Methoden gezeigt, um dies zu erreichen.

Ein häufiger Fehler besteht darin, nur das erste Ergebnis abzurufen. Um alle übereinstimmenden Zeilen abzurufen, verwenden Sie diese verbesserten Techniken:

Methode 1: Verwendung von fetch_all() (empfohlen)

Diese Methode ist prägnant und effizient, insbesondere für PHP 8.2 und höher. Es ruft alle Ergebnisse in ein assoziatives Array ab:

$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); // Fetches all results
Nach dem Login kopieren

Für PHP 8.2 vereinfacht die execute_query-Funktion dies weiter:

$sql = "SELECT id, username FROM users WHERE username LIKE ?";
$result = $db->execute_query($sql, ["%{$_POST['user']}%"]);
$data = $result->fetch_all(MYSQLI_ASSOC);
Nach dem Login kopieren

Methode 2: Iterativer Ansatz mit bind_result() und while Schleife

Dieser Ansatz durchläuft jede Zeile einzeln und druckt id und username:

$stmt->bind_result($id, $username);
while ($stmt->fetch()) {
  echo "Id: {$id}, Username: {$username}<br>"; // Added <br> for better output
}
Nach dem Login kopieren

Diese Methode ist nützlich, wenn Sie jede Zeile einzeln verarbeiten müssen, anstatt sie alle in einem Array zu speichern.

Beide Methoden basieren auf der offiziellen MySQLi-Dokumentation und bieten robuste Lösungen für die Verarbeitung mehrerer Ergebnisse aus LIKE Abfragen. Die fetch_all()-Methode wird im Allgemeinen wegen ihrer Einfachheit und Effizienz beim gleichzeitigen Abrufen aller Ergebnisse bevorzugt.

Das obige ist der detaillierte Inhalt vonWie kann ich alle Ergebnisse einer MySQLi LIKE-Abfrage mit mehreren Übereinstimmungen effizient abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage