Beim Erstellen einer Paging-Klasse möchten Sie zwei Parameter an eine gespeicherte MySQL-Prozedur übergeben LIMIT-Klausel. Der Versuch, INT-Parameter und eine Abfragestruktur wie die folgende zu verwenden, führt jedoch zu einem Fehler:
<code class="sql">SELECT * FROM `MyTable` LIMIT MyFirstParamInt, MySecondParamInt</code>
Gibt es einen alternativen Ansatz, um diese Parametrisierung zu erreichen, oder ist die dynamische Abfragekonstruktion und -ausführung die einzige Lösung?
Vor MySQL 5.5.6:
Vor Version 5.5.6 wurde die Parametrisierung der LIMIT-Klausel in gespeicherten MySQL-Prozeduren nicht unterstützt . Daher war das dynamische Erstellen und Ausführen der Abfrage die einzig mögliche Methode.
MySQL 5.5.6 und höher:
Ab MySQL 5.5.6 wurde es Es ist möglich, die LIMIT- und OFFSET-Klauseln mithilfe von INTEGER-Parametern zu parametrisieren. Übergeben Sie dazu einfach die Parameter der gespeicherten Prozedur direkt an LIMIT und OFFSET, wie unten gezeigt:
<code class="sql">SELECT * FROM `MyTable` LIMIT ? OFFSET ?</code>
In diesem Beispiel ? stellt die Platzhalter für die beiden INTEGER-Parameter dar, die Sie übergeben möchten.
Das obige ist der detaillierte Inhalt vonWie parametrisiere ich die LIMIT-Klausel in gespeicherten MySQL-Prozeduren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!