MySQLi und mehrere LIKE-Abfrageergebnisse: Ein umfassender Leitfaden
Die Verwendung des LIKE
-Operators von MySQLi stellt beim Abrufen mehrerer übereinstimmender Zeilen oft eine Herausforderung dar. Dieser Leitfaden zeigt die richtigen Techniken zur Vermeidung solcher Probleme.
Optimierter Code für den Abruf mehrerer Zeilen:
Der folgende Codeausschnitt ruft effizient alle übereinstimmenden Datensätze aus Ihrer users
-Tabelle ab und speichert sie im $data
-Array:
<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>
Der Schlüssel hier ist die Verwendung von get_result()
. Diese Methode gibt ein MySQLi-Ergebnisobjekt zurück und ermöglicht so den nahtlosen Zugriff und die Verarbeitung des gesamten Ergebnissatzes.
Moderner Ansatz (PHP 8.2 und höher):
Für PHP 8.2 und spätere Versionen gibt es eine prägnantere Methode:
<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>
Dies nutzt die execute_query()
-Methode und vereinfacht den Prozess erheblich.
Traditionelle Fetch- und bind_result-Methode:
Obwohl weniger effizient, bleibt der traditionelle Ansatz mit fetch()
und bind_result()
eine Option:
<code class="language-php">$stmt->bind_result($id, $username); while ($stmt->fetch()) { echo "Id: {$id}, Username: {$username}"; }</code>
Beachten Sie, dass hierfür eine while
Schleife erforderlich ist, um jede Zeile einzeln zu durchlaufen.
Wichtige Ressourcen:
Ausführliche Informationen und weitere Erkundungen finden Sie in diesen Ressourcen:
Das obige ist der detaillierte Inhalt vonWie rufe ich mit MySQLi mehrere LIKE-Abfrageergebnisse ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!