Heim >Web-Frontend >Front-End-Fragen und Antworten >Nodejs verwendet MySQL-Fuzzy-Abfragen

Nodejs verwendet MySQL-Fuzzy-Abfragen

WBOY
WBOYOriginal
2023-05-28 09:21:07802Durchsuche

Mit der rasanten Entwicklung des Internets finden heutige Datenbankanwendungen immer mehr Verbreitung. Im Datenbankbereich ist MySQL ein sehr beliebtes Datenbankprodukt. Gleichzeitig ist JavaScript auch eine sehr beliebte Sprache für Entwicklungssprachen, und Node.js ist eine serverseitige Entwicklungsumgebung, die auf JavaScript basiert. In der Kombination von Node.js und MySQL ist es sehr wichtig, Fuzzy-Abfragen durchführen zu können. Lassen Sie uns heute mehr über die Implementierung der MySQL-Fuzzy-Abfrage durch nodejs erfahren.

1. Installieren Sie Node.js und MySQL
Bevor wir offiziell mit der Verwendung von MySQL-Fuzzy-Abfragen in NodeJS beginnen, müssen wir zuerst Node.js und MySQL installieren. Auf die Installationsschritte werde ich hier nicht näher eingehen.

2. Stellen Sie eine Verbindung zur MySQL-Datenbank her.
Um eine Verbindung zur MySQL-Datenbank in Node.js herzustellen, müssen Sie das MySQL-Modul eines Drittanbieters verwenden. Daher müssen Sie das MySQL-Modul über npm installieren. Die Installationsmethode lautet: Geben Sie npm install mysql in die Befehlszeile ein.

Nach der Installation des MySQL-Moduls müssen wir das MySQL-Modul einführen und eine Verbindung herstellen. Der spezifische Code lautet wie folgt:

const mysql = require('mysql');

// 创建连接
const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '123456',
    database: 'mydb'
});

connection.connect();

3. Fuzzy-Abfrage in Node.js
In Node.js kann Fuzzy-Abfrage den LIKE-Operator von MySQL verwenden, um dies zu erreichen . Der LIKE-Operator wird verwendet, um in einer Spalte in der WHERE-Klausel nach einem Muster zu suchen. Die grundlegende Syntax lautet wie folgt:

SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern;

In der LIKE-Syntax wird Muster verwendet, um die zu durchsuchende Zeichenfolge oder das Zeichenmuster anzugeben. Sie können die Platzhalter % und _ im Muster verwenden, um eine Fuzzy-Suche durchzuführen. Die spezifischen Bedeutungen sind wie folgt:
%: steht für 0 oder mehr Zeichen.
_: steht für ein beliebiges einzelnes Zeichen.

Angenommen, wir haben eine Studententabelle, die den Namen des Studenten (Name) und die Studentennummer (SNO) enthält. Wir müssen nun die Informationen aller Schüler mit dem Nachnamen Zhang abfragen. Der spezifische Code lautet wie folgt:

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();

Mit dem obigen Code können wir eine Fuzzy-Abfrage für Schüler mit dem Nachnamen Zhang in der Schülertabelle durchführen. Hier bedeutet das Platzhalterzeichen %, dass der Nachname Zhang unabhängig davon, welches Zeichen folgt, abgeglichen werden kann, sodass die Informationen aller Schüler mit dem Nachnamen Zhang abgefragt werden können.

4. SQL-Injection vermeiden
Obwohl im obigen Code eine Fuzzy-Abfrage implementiert wurde, gibt es ein sehr ernstes Problem, nämlich die SQL-Injection. Im vorherigen Code haben wir den vom Benutzer eingegebenen Suchinhalt direkt in die SQL-Anweisung gespleißt, was dem Angreifer die Möglichkeit geben würde, bösartigen Code einzuschleusen. Daher müssen wir einige Regeln befolgen, um dieses Risiko zu vermeiden.

Im Allgemeinen können wir SQL-Injection vermeiden, indem wir Zeichenfolgen maskieren. Der spezifische Code lautet wie folgt:

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();

Im obigen Code maskieren wir den vom Benutzer eingegebenen Suchinhalt über die Methode mysql.escape(). Auf diese Weise können Sie SQL-Injection-Probleme vermeiden.

5. Zusammenfassung
Die Verwendung von MySQL für Fuzzy-Abfragen in NodeJS ist ein sehr praktischer und notwendiger Vorgang. Mit dem in Node.js gekapselten MySQL-Modul können wir problemlos eine Verbindung zur MySQL-Datenbank herstellen und verschiedene Abfragevorgänge implementieren. Bei der Durchführung von Fuzzy-Abfragen müssen wir darauf achten, das Risiko einer SQL-Injection zu vermeiden, um die Datensicherheit zu gewährleisten.

Das obige ist der detaillierte Inhalt vonNodejs verwendet MySQL-Fuzzy-Abfragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:nodejs schließt den DienstNächster Artikel:nodejs schließt den Dienst