Heim >Backend-Entwicklung >PHP-Tutorial >Wie verwende ich LIMIT mit MySQL-vorbereiteten Anweisungen in PDO?

Wie verwende ich LIMIT mit MySQL-vorbereiteten Anweisungen in PDO?

DDD
DDDOriginal
2024-11-30 16:37:10228Durchsuche

How to Use LIMIT with MySQL Prepared Statements in PDO?

LIMIT-Schlüsselwort in MySQL mit vorbereiteter Anweisung

Beim Versuch, eine vorbereitete Anweisung mit dem LIMIT-Schlüsselwort auszuführen, kann es zu einer Fehlermeldung kommen verwenden die PDO-Bibliothek (PHP Data Objects). Dies liegt daran, dass PDO alle Parameter als Zeichenfolgen behandelt, was zu Analysefehlern führen kann, wenn numerische Werte für die LIMIT-Argumente verwendet werden.

Um dieses Problem zu beheben, können Sie die folgenden Optionen in Betracht ziehen:

1. Parameter einzeln binden:

Sie können jeden Parameter manuell mit dem entsprechenden Typ binden und so sicherstellen, dass die LIMIT-Argumente als Ganzzahlen behandelt werden:

$comments->bindParam(1, $post, PDO::PARAM_STR);
$comments->bindParam(2, $min, PDO::PARAM_INT);
$comments->bindParam(3, $min, PDO::PARAM_INT);

2. Vorbereitete Anweisungen deaktivieren:

Eine weitere Option besteht darin, emulierte Vorbereitungen zu deaktivieren, was dazu führen kann, dass Argumente zitiert werden:

$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);

3. Übergeben Sie keine LIMIT-Werte:

Anstatt die LIMIT-Werte als Parameter zu übergeben, können Sie sie direkt in die Abfragezeichenfolge einbetten:

$query = sprintf('SELECT id, content, date
FROM comment
WHERE post = ?
ORDER BY date DESC
LIMIT %d, %d', $min, $max);

Indem Sie die Verwendung emulierter Vorbereitungen vermeiden oder das explizite Festlegen von Parametertypen können Sie vorbereitete Anweisungen mit dem Schlüsselwort LIMIT in MySQL erfolgreich ausführen.

Das obige ist der detaillierte Inhalt vonWie verwende ich LIMIT mit MySQL-vorbereiteten Anweisungen in PDO?. 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