Übereinstimmung von Benutzernamen, die mit einem Zeichen beginnen, mithilfe von LIKE und bindParam in PDO
Bei Datenbankabfragen mithilfe von bindParam mit PDO können Sie auf Szenarien stoßen, in denen Sie Sie müssen den LIKE-Operator verwenden, um nach Teilübereinstimmungen von Daten zu suchen. Insbesondere möchten Sie möglicherweise Benutzernamen abrufen, die mit einem bestimmten Zeichen beginnen, in diesem Fall als „a“ bezeichnet.
Um dies mit der korrekten Verwendung von LIKE und bindParam zu erreichen, vermeiden Sie es, den bindParam-Platzhalter in einfache Anführungszeichen zu setzen. Die korrekte Syntax lautet:
$term = "a%";
Der Code zeigt einen Fehler beim Versuch, ein %' als Platzhalterkriterium anstelle eines % auszuführen.
Denken Sie daran, dass bindParam sicherstellt, dass alle Zeichenfolgenwerte gültig sind werden bei der Übergabe an die SQL-Anweisung entsprechend in Anführungszeichen gesetzt. Daher ist das Einschließen des Platzhalters in Anführungszeichen unnötig und führt zu einer falschen Übereinstimmung.
Die korrigierte Abfrage sollte wie folgt lauten:
$term = "a%"; $sql = "SELECT username FROM `user` WHERE username LIKE :term LIMIT 10"; $stmt = $core->dbh->prepare($sql); $stmt->bindParam(':term', $term, PDO::PARAM_STR); $stmt->execute(); $data = $stmt->fetchAll();
Dieser Code ruft erfolgreich alle Benutzernamen ab, die mit dem beginnen Zeichen 'a' durch korrekte Anwendung des LIKE-Operators innerhalb der bindParam-Verwendung.
Das obige ist der detaillierte Inhalt vonWie verwende ich LIKE und bindParam in PDO korrekt, um Benutzernamen zuzuordnen, die mit einem bestimmten Zeichen beginnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!