Rumah  >  Soal Jawab  >  teks badan

Cara menggunakan LIMIT dan ruang letak dalam MySQL (Node.JS)

<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粉416996828P粉416996828425 hari yang lalu571

membalas semua(1)saya akan balas

  • P粉141925181

    P粉1419251812023-07-25 18:20:58

    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.

    balas
    0
  • Batalbalas