Heim  >  Fragen und Antworten  >  Hauptteil

So verwenden Sie LIMIT und Platzhalter in MySQL (Node.JS)

<p>Ich versuche, eine Abfrage mit Platzhaltern unter Verwendung von Node.js und MySQL auszuführen. Allerdings scheint der LIMIT-Platzhalter nicht zu funktionieren, da der Wert danach ohne Anführungszeichen stehen sollte. Das ist meine Anfrage: </p> <pre class="brush:php;toolbar:false;">SELECT userName, clicks FROM users ORDER BY clicks DESC LIMIT ?</pre> <p>Wie erhalte ich mithilfe von Platzhaltern das gewünschte Verhalten? Ist das möglich? Das Folgende ist die vollständige Codeanweisung, wobei data.topUsersCount ein ganzzahliger Wert ist: </p> <pre class="brush:php;toolbar:false;">con.query("SELECT userName, clicks FROM users ORDER BY clicks DESC LIMIT ?", [data.topUsersCount], (err, topUsersData) => { // Daten verarbeiten });</pre> <p>Ich habe auch versucht, den doppelten Platzhalter „??“ zu verwenden, aber es hat auch nicht funktioniert. </p>
P粉416996828P粉416996828475 Tage vor623

Antworte allen(1)Ich werde antworten

  • P粉141925181

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

    以下是您可能在代码中处理此问题的方式:

    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");
    }
    

    在上面的代码中,使用Number.isInteger(data.topUsersCount)来检查data.topUsersCount是否是一个安全整数,然后再将其合并到查询字符串中。这对于防止SQL注入攻击非常关键。

    Antwort
    0
  • StornierenAntwort