Rumah > Soal Jawab > teks badan
PHP中文网2017-04-18 09:25:18
Proses penggunaan PrepareStatement adalah seperti berikut:
Gunakan instantiasi SQL pemegang tempat
Panggil kaedah bindXX untuk melengkapkan pengikatan parameter
Panggil kaedah executeUpdate atau executeQuery Tiada parameter dihantar di sini kerana parameter diproses dalam langkah 1 dan 2.
巴扎黑2017-04-18 09:25:18
Anda telah pun melepasi sql ke pst di atas. Mengapa anda perlu menghantarnya ke executQuery?
怪我咯2017-04-18 09:25:18
Psr.executeQuery(sql) anda, anda telah melepasi parameter untuk mendapatkan set hasil, tidak perlu melepasi parameter lagi,
巴扎黑2017-04-18 09:25:18
Kelas PreparedStatement digunakan untuk menyediakan pernyataan sql.
Contohnya:
`ResultSet rs = null;
PreparedStatement loginStatement =
sqlDAO.sqlConnection().prepareStatement("SELECT username,password FROM user_table WHERE username = ? AND password = ?");
loginStatement.setString(1, username);
loginStatement.setString(2, password);
rs = loginStatement.executeQuery();`
? Mewakili ruang letak, kita boleh menggunakan kaedah seperti setString(int, String) untuk menetapkan nilai untuk ruang letak. Parameter int ialah nombor pemegang tempat (perhatikan bahawa ia tidak bermula dari 0, ia adalah nombor matematik Parameter kedua menunjukkan bahawa kita akan menggantikan pemegang tempat yang sepadan (?) dengan nilai. Melakukan ini akan menghalang pangkalan data kami daripada disuntik sql. Perlu diingat bahawa kata kunci pernyataan SQL tidak boleh digantikan oleh pemegang tempat , kerana pemegang tempat secara automatik akan membalut String yang kami tentukan dalam petikan tunggal, menyebabkan pernyataan SQL gagal dilaksanakan. Lihat kod telefon bimbit