如何在MySQL(Node.JS)中使用LIMIT和占位符
P粉416996828
P粉416996828 2023-07-24 21:17:01
0
1
662
<p>我正在尝试使用Node.js和MySQL执行带有占位符的查询。但是,LIMIT占位符似乎不起作用,因为它后面的值应该不带引号。这是我的查询语句:</p> <pre class="brush:php;toolbar:false;">SELECT userName, clicks FROM users ORDER BY clicks DESC LIMIT ?</pre> <p>使用占位符如何获得我所需的行为,这是否可能?以下是完整的代码语句,其中data.topUsersCount是一个整数值:</p> <pre class="brush:php;toolbar:false;">con.query("SELECT userName, clicks FROM users ORDER BY clicks DESC LIMIT ?", [data.topUsersCount], (err, topUsersData) => { // Handle data });</pre> <p>我也尝试使用双占位符"??",但它也没有起作用。</p>
P粉416996828
P粉416996828

全部回复(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注入攻击非常关键。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板