Nodejs menggunakan pertanyaan kabur mysql

WBOY
Lepaskan: 2023-05-28 09:21:07
asal
764 orang telah melayarinya

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();
Salin selepas log masuk

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;
Salin selepas log masuk

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();
Salin selepas log masuk

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();
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!