So funktioniert das Schlüsselwort LIMIT mit vorbereiteten Anweisungen in MySQL
Das Schlüsselwort LIMIT in MySQL wird verwendet, um die Anzahl der von einem SELECT zurückgegebenen Zeilen zu beschränken Stellungnahme. Es werden zwei ganzzahlige Argumente benötigt: ein Offset und ein Limit.
Im folgenden Beispiel wird die LIMIT-Klausel verwendet, um die ersten 10 Zeilen aus der Kommentartabelle auszuwählen, sortiert nach der Datumsspalte in absteigender Reihenfolge:
SELECT id, content, date FROM comment WHERE post = ? ORDER BY date DESC LIMIT ?, ?
Um diese Abfrage mithilfe einer vorbereiteten PDO-Anweisung auszuführen, würden Sie die drei Abfrageparameter an die entsprechenden Daten binden Typen:
$query = $db->prepare($sql); $query->bindParam(1, $post, PDO::PARAM_STR); $query->bindParam(2, $min, PDO::PARAM_INT); $query->bindParam(3, $max, PDO::PARAM_INT); $query->execute();
Wenn Sie jedoch versuchen, diese Abfrage mit aktivierten emulierten Vorbereitungen auszuführen (die Standardeinstellung für den MySQL-PDO-Treiber), wird ein Fehler auftreten. Dies liegt daran, dass der MySQL-Treiber den zweiten und dritten Abfrageparameter automatisch in Zeichenfolgen umwandelt, was dazu führt, dass die LIMIT-Klausel fehlschlägt.
Um dieses Problem zu beheben, können Sie entweder emulierte Vorbereitungen deaktivieren oder stattdessen Positionsplatzhalter verwenden benannte Platzhalter in Ihrer Abfrage.
Emuliert deaktivieren Bereitet vor:
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
Verwendung von Positionsplatzhaltern:
SELECT id, content, date FROM comment WHERE post = ? ORDER BY date DESC LIMIT ? OFFSET ?
$query = $db->prepare($sql); $query->execute([$post, $min, $max]);
Das obige ist der detaillierte Inhalt vonWie funktioniert das LIMIT-Schlüsselwort von MySQL mit vorbereiteten Anweisungen und Parameterbindung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!