MySQLi LIKE
Abfragen: Mehrere Zeilen abrufen
Der bereitgestellte Code verwendet bind_result
und fetch
und ist nur für den einzeiligen Abruf geeignet. Um mit MySQLi mehrere Zeilen abzurufen, die einer LIKE
-Abfrage entsprechen, ziehen Sie die folgenden Methoden in Betracht:
Methode 1: Verwendung von get_result()
Diese Methode gibt ein Ergebnismengenobjekt zurück, sodass Sie mit fetch_all()
alle Zeilen als assoziatives Array abrufen können:
$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);
Methode 2: Verwendung von execute_query()
(PHP 8.2 und höher)
Dieser optimierte Ansatz führt die Abfrage aus und ruft alle Ergebnisse gleichzeitig ab:
$sql = "SELECT id, username FROM users WHERE username LIKE ?"; $result = $db->execute_query($sql, ["%{$_POST['user']}%"]); $data = $result->fetch_all(MYSQLI_ASSOC);
Methode 3: Iterativ fetch()
Wenn Sie den bind_result()
- und fetch()
-Ansatz bevorzugen, verwenden Sie eine Schleife, um mehrere Zeilen zu durchlaufen:
$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()) { echo "Id: {$id}, Username: {$username}"; }
Diese Alternativen rufen effizient alle Zeilen ab, die Ihre LIKE
-Bedingung erfüllen. Wählen Sie die Methode, die am besten zu Ihrem Codierungsstil und Ihrer PHP-Version passt.
Das obige ist der detaillierte Inhalt vonWie rufe ich mit mysqli mehrere Zeilen mit einer LIKE-Abfrage ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!