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
Susan SarandonOriginal
2024-11-13 10:36:02299Durchsuche

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%'";

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

$term = "$term%";

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();

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!

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