Dengan perkembangan pesat Internet, aplikasi pangkalan data hari ini menjadi semakin meluas. Dalam bidang pangkalan data, MySQL adalah produk pangkalan data yang sangat popular. Pada masa yang sama, JavaScript juga merupakan bahasa yang sangat popular untuk bahasa pembangunan, dan Node.js ialah persekitaran pembangunan sisi pelayan yang dibina pada JavaScript. Dalam gabungan Node.js dan MySQL, sangat diperlukan untuk dapat melakukan pertanyaan kabur. Hari ini, mari kita ketahui lebih lanjut tentang pelaksanaan pertanyaan mysql fuzzy nodejs.
1. Pasang Node.js dan MySQL
Sebelum mula menggunakan pertanyaan fuzzy mysql dalam nodejs, kita perlu memasang Node.js dan MySQL terlebih dahulu diulang di sini.
2. Menyambung ke pangkalan data MySQL
Untuk menyambung ke pangkalan data MySQL dalam Node.js, anda perlu menggunakan modul mysql modul pihak ketiga. Oleh itu, anda perlu memasang modul mysql melalui npm Kaedah pemasangan ialah: masukkan npm install mysql pada baris arahan.
Selepas memasang modul mysql, kita perlu memperkenalkan modul mysql dan membuat sambungan. Kod khusus adalah seperti berikut:
const mysql = require('mysql'); // 创建连接 const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: '123456', database: 'mydb' }); connection.connect();
3. Pertanyaan kabur dalam Node.js
Dalam Node.js, pertanyaan kabur boleh dilaksanakan menggunakan pengendali LIKE MySQL. Operator LIKE digunakan untuk mencari corak dalam lajur dalam klausa WHERE. Sintaks asas adalah seperti berikut:
SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern;
Dalam sintaks SEPERTI, corak digunakan untuk menentukan rentetan atau corak aksara yang hendak dicari. Anda boleh menggunakan % dan _ kad bebas dalam corak untuk melakukan carian kabur Maksud khusus adalah seperti berikut:
%: mewakili 0 atau lebih aksara.
_: mewakili mana-mana aksara tunggal.
Andaikan kita mempunyai jadual pelajar, yang mengandungi nama pelajar (nama) dan nombor pelajar (sno). Kami kini perlu menanyakan maklumat semua pelajar dengan nama keluarga Zhang. Kod khusus adalah seperti berikut:
const searchName = '张'; const sql = `SELECT * FROM students WHERE name LIKE '%${searchName}%'`; connection.query(sql, (err, results, fields) => { if (err) { console.error(err); return; } console.log(results); }); connection.end();
Melalui kod di atas, kita boleh mencapai pertanyaan kabur untuk pelajar dengan nama keluarga Zhang dalam jadual pelajar. Di sini, % aksara kad bebas bermakna tidak kira apa watak yang diikuti oleh nama keluarga Zhang, ia boleh dipadankan, jadi maklumat semua pelajar dengan nama keluarga Zhang boleh disoal.
4. Elakkan suntikan SQL
Walaupun pertanyaan kabur telah dilaksanakan dalam kod di atas, terdapat masalah yang sangat serius, iaitu suntikan SQL. Dalam kod sebelumnya, kami terus menyambung kandungan carian yang dimasukkan oleh pengguna ke dalam pernyataan SQL, yang akan memberi penyerang peluang untuk menyuntik kod berniat jahat. Oleh itu, kita perlu mengikuti beberapa peraturan untuk mengelakkan risiko ini.
Secara umumnya, kita boleh mengelakkan suntikan SQL dengan melepaskan diri daripada rentetan. Kod khusus adalah seperti berikut:
const searchName = mysql.escape(req.query.name); const sql = `SELECT * FROM students WHERE name LIKE '%${searchName}%'`; connection.query(sql, (err, results, fields) => { if (err) { console.err(err); return; } console.log(results); }); connection.end();
Dalam kod di atas, kami melarikan diri kandungan carian yang dimasukkan oleh pengguna melalui kaedah mysql.escape(). Dengan cara ini anda boleh mengelakkan masalah suntikan SQL.
5 Ringkasan
Menggunakan mysql untuk melakukan pertanyaan kabur dalam nodejs ialah operasi yang sangat praktikal dan perlu. Dengan modul mysql yang terkandung dalam Node.js, kami boleh menyambung ke pangkalan data MySQL dengan mudah dan melaksanakan pelbagai operasi pertanyaan. Apabila melakukan pertanyaan kabur, kita perlu memberi perhatian untuk mengelakkan risiko suntikan SQL untuk memastikan keselamatan data.
Atas ialah kandungan terperinci Nodejs menggunakan pertanyaan kabur mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!