MySQL で LIMIT とプレースホルダーを使用する方法 (Node.JS)
P粉416996828
2023-07-24 21:17:01
<p>Node.js と MySQL を使用してプレースホルダーを含むクエリを実行しようとしています。ただし、LIMIT プレースホルダーは、その後の値に引用符を付けない必要があるため、機能しないようです。これが私のクエリです: </p>
<pre class="brush:php;toolbar:false;">SELECT userName、クリック数 FROM ユーザー ORDER BY クリック数 DESC LIMIT ?</pre>
<p>プレースホルダーを使用して希望の動作を取得するにはどうすればよいですか。これは可能ですか?以下は完全なコード ステートメントです。data.topUsersCount は整数値です。
<pre class="brush:php;toolbar:false;">con.query("SELECT userName, clicks FROM users ORDER BY clicks DESC LIMIT ?", [data.topUsersCount], (err, topUsersData) => {
// データを処理します
});</pre>
<p>二重プレースホルダー「??」も使用してみましたが、どちらも機能しませんでした。 </p>
コードでこれを処理する方法は次のとおりです:
リーリー上記のコードでは、クエリ文字列に組み込む前に Number.isInteger(data.topUsersCount) を使用して data.topUsersCount が安全な整数かどうかを確認します。これは SQL インジェクション攻撃を防ぐために重要です。