Cara menggunakan LIMIT dan ruang letak dalam MySQL (Node.JS)
P粉416996828
P粉416996828 2023-07-24 21:17:01
0
1
677
<p>Saya cuba melaksanakan pertanyaan dengan ruang letak menggunakan Node.js dan MySQL. Walau bagaimanapun, pemegang tempat LIMIT nampaknya tidak berfungsi kerana nilai selepasnya sepatutnya tanpa petikan. Ini adalah pertanyaan saya: </p> <pre class="brush:php;toolbar:false;">PILIH Nama pengguna, klik DARIPADA pengguna ORDER BY klik DESC LIMIT ?</pre> <p>Bagaimanakah saya boleh mendapatkan tingkah laku yang saya mahu menggunakan ruang letak, adakah ini mungkin? Berikut ialah pernyataan kod lengkap, dengan data.topUsersCount ialah nilai integer: </p> <pre class="brush:php;toolbar:false;">con.query("PILIH Nama pengguna, klik DARIPADA pengguna ORDER OLEH klik DESC LIMIT ?", [data.topUsersCount], (err, topUsersData) => { // Mengendalikan data });</pre> <p>Saya juga cuba menggunakan pemegang tempat berganda "??" </p>
P粉416996828
P粉416996828

membalas semua(1)
P粉141925181

Begini cara anda boleh mengendalikan perkara ini dalam kod anda:

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");
}

Dalam kod di atas, gunakan Number.isInteger(data.topUsersCount) untuk menyemak sama ada data.topUsersCount ialah integer yang selamat sebelum memasukkannya ke dalam rentetan pertanyaan. Ini penting untuk mencegah serangan suntikan SQL.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan