En créant une classe de pagination, vous souhaitez transmettre deux paramètres à la procédure stockée MySQL Clause LIMITE. Cependant, tenter d'utiliser des paramètres INT et une structure de requête comme celle-ci génère une erreur :
<code class="sql">SELECT * FROM `MyTable` LIMIT MyFirstParamInt, MySecondParamInt</code>
Existe-t-il une approche alternative pour réaliser ce paramétrage, ou la construction et l'exécution de requêtes dynamiques sont-elles la seule solution ?
Avant MySQL 5.5.6 :
Avant la version 5.5.6, le paramétrage de la clause LIMIT n'était pas pris en charge dans les procédures stockées MySQL . En tant que tel, créer la requête de manière dynamique et l'exécuter était la seule méthode réalisable.
MySQL 5.5.6 et versions ultérieures :
À partir de MySQL 5.5.6, il est devenu Il est possible de paramétrer les clauses LIMIT et OFFSET à l'aide des paramètres INTEGER. Pour ce faire, transmettez simplement les paramètres de la procédure stockée directement à LIMIT et OFFSET, comme indiqué ci-dessous :
<code class="sql">SELECT * FROM `MyTable` LIMIT ? OFFSET ?</code>
Dans cet exemple, ? représente les espaces réservés pour les deux paramètres INTEGER que vous avez l'intention de transmettre.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!