Maison  >  Questions et réponses  >  le corps du texte

Comment utiliser LIMIT et les espaces réservés dans MySQL (Node.JS)

<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粉416996828P粉416996828425 Il y a quelques jours569

répondre à tous(1)je répondrai

  • P粉141925181

    P粉1419251812023-07-25 18:20:58

    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.

    répondre
    0
  • Annulerrépondre