So verwenden Sie LIMIT und Platzhalter in MySQL (Node.JS)
P粉416996828
P粉416996828 2023-07-24 21:17:01
0
1
633
<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粉416996828
P粉416996828

Antworte allen(1)
P粉141925181

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

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注入攻击非常关键。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage