Abfragen mit LIKE und Abrufen mehrerer Ergebnisse in MySQL
Der in der Frage bereitgestellte Code versucht, eine LIKE-Abfrage durchzuführen und mehrere Ergebnisse abzurufen stößt auf Probleme. Die folgenden Schritte beschreiben die richtige Vorgehensweise:
Abfrage vorbereiten:
$param = "%{$_POST['user']}%"; $stmt = $db->prepare("SELECT id, username FROM users WHERE username LIKE ?");
Binden Parameter:
$stmt->bind_param("s", $param);
Abfrage ausführen:
$stmt->execute();
Fetch the Ergebnisse als Array:
Ab PHP 8.2 ab:
$result = $stmt->get_result(); $data = $result->fetch_all(MYSQLI_ASSOC);
Vor PHP 8.2:
$result = $stmt->store_result(); while ($row = $result->fetch_assoc()) { $data[] = $row; }
Alternativ Ergebnisse inkrementell abrufen:
$stmt->bind_result($id, $username); while ($stmt->fetch()) { echo "Id: $id, Username: $username"; }
Dieser überarbeitete Code stellt sicher, dass alle übereinstimmenden Ergebnisse abgerufen werden, auch wenn es mehrere sind Zeilen werden zurückgegeben. Die in der Antwort angegebenen Referenzen erläutern die verwendeten Techniken weiter.
Das obige ist der detaillierte Inhalt vonWie kann ich mit mysqli effizient mehrere Ergebnisse aus einer MySQL-LIKE-Abfrage abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!