如何在MySQL(Node.JS)中使用LIMIT和占位符
P粉416996828
P粉416996828 2023-07-24 21:17:01
0
1
669
<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注入攻擊非常關鍵。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板