So verwenden Sie LIKE '%{$var}%' richtig mit vorbereiteten Anweisungen
Beim Versuch, LIKE '%{$var}%' zu verwenden }%‘ mit vorbereiteten Anweisungen auftritt, tritt bei einigen Benutzern der Fehler auf: „Anzahl der Variablen stimmt nicht mit der Anzahl der Parameter in der vorbereiteten Anweisung überein.“ Dies liegt daran, dass vorbereitete Anweisungen eine bestimmte Anzahl von Parametern erfordern und die Syntax „%{$var}%“ keine eindeutige Parameteranzahl liefert.
Falsches Beispiel
$sql = 'SELECT * FROM `users` WHERE username LIKE \'%{?}%\' ';
Verbesserte Lösung
Um dieses Problem zu beheben, sollten Sie zunächst eine Variable erstellen, die den LIKE-Ausdruck enthält, mit die Platzhalter enthalten. Binden Sie dann die Variable mit der Methode bind_param() an die vorbereitete Anweisung.
$likeVar = "%" . $yourParam . "%"; $stmt = $mysqli->prepare("SELECT * FROM REGISTRY where name LIKE ?"); $stmt->bind_param("s", $likeVar); $stmt->execute();
Durch Befolgen dieser Methode können Sie LIKE-Suchen mithilfe vorbereiteter Anweisungen effektiv durchführen und dabei die Groß-/Kleinschreibung beibehalten und Teilübereinstimmungen ermöglichen.
Das obige ist der detaillierte Inhalt vonWie vermeide ich den Fehler „Anzahl der Variablen stimmt nicht überein', wenn LIKE „%{$var}%' mit vorbereiteten Anweisungen verwendet wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!