Heim >Datenbank >MySQL-Tutorial >Warum fügt PDO Anführungszeichen zu LIMIT-Klauselvariablen hinzu und wie kann ich das beheben?

Warum fügt PDO Anführungszeichen zu LIMIT-Klauselvariablen hinzu und wie kann ich das beheben?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-24 00:17:10254Durchsuche

Why Does PDO Add Quotes to LIMIT Clause Variables and How Can I Fix It?

Fehler in der LIMIT-Klausel mit der bindValue-Methode

Beim Versuch, die Paginierung zu implementieren, ist ein Entwickler bei der Verwendung der bindValue-Methode auf einen SQL-Syntaxfehler gestoßen mit der LIMIT-Klausel. Die Abfrage löste einen Fehler aus, der besagte, dass den Variablen im LIMIT-Teil einfache Anführungszeichen hinzugefügt wurden.

Bei weiteren Untersuchungen entdeckte der Entwickler einen möglichen Zusammenhang mit einem bekannten Fehler in PHP (Bugid 44639), der dokumentiert wurde seit 2008. Dieser Fehler deutete darauf hin, dass PDO möglicherweise automatisch Anführungszeichen zu Nicht-String-Variablen im LIMIT hinzufügt Klausel.

Lösungen:

Eine Lösung zur Behebung dieses Problems wurde bereitgestellt, indem der Wert in eine Ganzzahl umgewandelt wurde, bevor er an die Bindungsfunktion übergeben wurde. Mit dieser Änderung wäre die SQL-Anweisung in der Lage, die Variablen korrekt zu interpretieren und die Abfrage ohne Syntaxfehler auszuführen. Das aktualisierte Code-Snippet würde wie folgt aussehen:

$fetchPictures->bindValue(':skip', (int) trim($_GET['skip']), PDO::PARAM_INT);

Das obige ist der detaillierte Inhalt vonWarum fügt PDO Anführungszeichen zu LIMIT-Klauselvariablen hinzu und wie kann ich das beheben?. 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