Heim >Backend-Entwicklung >PHP-Tutorial >Wie vermeide ich den Fehler „Anzahl der Variablen stimmt nicht überein', wenn LIKE „%{$var}%' mit vorbereiteten Anweisungen verwendet wird?

Wie vermeide ich den Fehler „Anzahl der Variablen stimmt nicht überein', wenn LIKE „%{$var}%' mit vorbereiteten Anweisungen verwendet wird?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-01 21:52:13577Durchsuche

How to Avoid

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!

Stellungnahme:
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