Sokongan Pertanyaan Berbilang Pernyataan dalam Node-MySQL
Dalam Node.js, persoalan timbul apabila melaksanakan berbilang pernyataan SQL dalam satu pertanyaan menggunakan pakej node-mysql.
Kod yang disediakan oleh pengguna cuba memadam rekod daripada empat jadual menggunakan koma bertitik (;) untuk mengasingkan pernyataan. Walau bagaimanapun, ini mengakibatkan ralat yang menyatakan bahawa terdapat ralat dalam sintaks SQL.
Dokumentasi nod-mysql pada asalnya melumpuhkan sokongan untuk berbilang kenyataan atas sebab keselamatan, kerana ia boleh membawa kepada serangan suntikan SQL. Untuk mendayakan ciri ini, anda perlu menetapkan berbilangPenyataan kepada benar apabila membuat sambungan:
var connection = mysql.createConnection({multipleStatements: true});
Dengan berbuat demikian, anda boleh melaksanakan berbilang kenyataan dengan pemisah koma bertitik, dan hasilnya akan menjadi tatasusunan dengan satu elemen untuk setiap pernyataan.
Contoh:
connection.query('SELECT ?; SELECT ?', [1, 2], function(err, results) { if (err) throw err; // `results` is an array with one element for every statement in the query: console.log(results[0]); // [{1: 1}] console.log(results[1]); // [{2: 2}] });
Dalam anda kes, dengan menetapkan berbilangPenyata kepada benar, kod awal anda seharusnya berjaya melaksanakan empat penyataan DELETE dalam satu pertanyaan, menghapuskan keperluan untuk berbilang pertanyaan dan meningkatkan kecekapan kod.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Berbilang Pernyataan SQL dalam Satu Pertanyaan Menggunakan Node-MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!