„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie verwende ich LIKE mit BindParam in MySQL-PDO-Abfragen richtig?

Wie verwende ich LIKE mit BindParam in MySQL-PDO-Abfragen richtig?

Veröffentlicht am 16.11.2024
Durchsuche:837

How to Correctly Use LIKE with BindParam in MySQL PDO Queries?

LIKE mit BindParam in MySQL-PDO-Abfragen richtig verwenden

Wenn Sie versuchen, LIKE-Suchen mit bindParam in MySQL-PDO-Abfragen durchzuführen, ist die Verwendung unbedingt erforderlich die richtige Syntax, um genaue Ergebnisse zu gewährleisten.

Optimiert Syntax

Um Benutzernamen, die mit „a“ beginnen, mit bindParam abzugleichen, lautet die korrekte Syntax:

$term = "a%";

Im Gegensatz dazu ist die Die in der ursprünglichen Frage angegebene Syntax „$term = „‘$term%‘“ ist falsch, da sie unnötige innere einfache Anführungszeichen um den $term-Wert setzt, was dazu führen würde, dass nach „a%“ anstelle von gesucht wird a%.

bindParams Rolle

bindParam ist dafür verantwortlich, Zeichenfolgendaten automatisch in Anführungszeichen zu setzen, wenn sie in SQL-Anweisungen eingefügt werden. Daher ist das manuelle Anhängen von einfachen Anführungszeichen nicht erforderlich und kann dazu führen zu falschen Ergebnissen.

Überarbeiteter Code

Verwendung der optimierte Syntax, der überarbeitete Code wäre:

$term = "a%";

$sql = "SELECT username FROM `user` WHERE username LIKE :term LIMIT 10";      

$core = Connect::getInstance();

$stmt = $core->dbh->prepare($sql);
$stmt->bindParam(':term', $term, PDO::PARAM_STR);
$stmt->execute();
$data = $stmt->fetchAll();
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3