Heim > Datenbank > MySQL-Tutorial > Warum schlägt „bindParam' fehl, wenn „LIKE' in MySQL-PDO-Abfragen verwendet wird?

Warum schlägt „bindParam' fehl, wenn „LIKE' in MySQL-PDO-Abfragen verwendet wird?

Susan Sarandon
Freigeben: 2024-11-13 10:36:02
Original
251 Leute haben es durchsucht

Why Does `bindParam` Fail When Using `LIKE` in MySQL PDO Queries?

Korrektur der LIKE-Syntax bei Verwendung von bindParam für MySQL-PDO-Abfragen

Bei MySQL-PDO-Abfragen kann die Verwendung von LIKE mit bindParam schwierig sein. Diese Frage zeigt ein häufiges Problem beim Versuch, Benutzernamen zu finden, die mit einer bestimmten Zeichenfolge beginnen.

Die in der Frage angegebene falsche Syntax verwendet innere einfache Anführungszeichen um die Variable $term:

$term = "'$term%'";
Nach dem Login kopieren

Um dies zu beheben, entfernen Sie einfach die inneren einfachen Anführungszeichen:

$term = "$term%";
Nach dem Login kopieren

Bei Verwendung von bindParam verarbeitet PDO automatisch die Zeichenfolgen-Anführungszeichen. Das Hinzufügen unnötiger Anführungszeichen innerhalb der Variablen $term kann zu falschen LIKE-Übereinstimmungen führen.

Die korrigierte Anweisung sollte wie folgt aussehen:

$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();
Nach dem Login kopieren

Dadurch werden Benutzernamen korrekt abgeglichen, die mit der Variablen $term beginnen , zum Beispiel „a“.

Das obige ist der detaillierte Inhalt vonWarum schlägt „bindParam' fehl, wenn „LIKE' in MySQL-PDO-Abfragen verwendet wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage