So verwenden Sie LIMIT und Platzhalter in MySQL (Node.JS)
P粉416996828
2023-07-24 21:17:01
<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>
以下是您可能在代码中处理此问题的方式:
在上面的代码中,使用Number.isInteger(data.topUsersCount)来检查data.topUsersCount是否是一个安全整数,然后再将其合并到查询字符串中。这对于防止SQL注入攻击非常关键。