Comment utiliser LIMIT et les espaces réservés dans MySQL (Node.JS)
P粉416996828
P粉416996828 2023-07-24 21:17:01
0
1
668
<p>J'essaie d'exécuter une requête avec des espaces réservés à l'aide de Node.js et MySQL. Cependant, l'espace réservé LIMIT ne semble pas fonctionner car la valeur qui le suit doit être sans guillemets. Voici ma requête : </p> <pre class="brush:php;toolbar:false;">SELECT userName, clics FROM utilisateurs ORDER BY clics DESC LIMIT ?</pre> <p>Comment puis-je obtenir le comportement souhaité en utilisant des espaces réservés, est-ce possible ? Voici l'instruction de code complète, où data.topUsersCount est une valeur entière : </p> <pre class="brush:php;toolbar:false;">con.query("SELECT userName, clics FROM utilisateurs ORDER BY clics DESC LIMIT ?", [data.topUsersCount], (err, topUsersData) => { // Gérer les données });</pré> <p>J'ai également essayé d'utiliser le double espace réservé "??", mais cela n'a pas fonctionné non plus. </p>
P粉416996828
P粉416996828

répondre à tous(1)
P粉141925181

Voici comment gérer cela dans votre code :

if (Number.isInteger(data.topUsersCount)) {
  let queryString = "SELECT userName, clicks FROM users ORDER BY clicks DESC LIMIT " + data.topUsersCount;

  con.query(queryString, (err, topUsersData) => {
    // Handle data
  });
} else {
  // Handle error
  console.log("Invalid limit value");
}

Dans le code ci-dessus, utilisez Number.isInteger(data.topUsersCount) pour vérifier si data.topUsersCount est un entier sûr avant de l'incorporer dans la chaîne de requête. Ceci est essentiel pour prévenir les attaques par injection SQL.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal