> 웹 프론트엔드 > 프런트엔드 Q&A > Nodejs는 mysql 퍼지 쿼리를 사용합니다.

Nodejs는 mysql 퍼지 쿼리를 사용합니다.

WBOY
풀어 주다: 2023-05-28 09:21:07
원래의
799명이 탐색했습니다.

인터넷의 급속한 발전과 함께 오늘날의 데이터베이스 애플리케이션은 점점 더 널리 보급되고 있습니다. 데이터베이스 분야에서 MySQL은 매우 인기 있는 데이터베이스 제품입니다. 동시에 JavaScript는 개발 언어로 매우 널리 사용되는 언어이며 Node.js는 JavaScript를 기반으로 구축된 서버측 개발 환경입니다. Node.js와 MySQL의 조합에서는 퍼지 쿼리를 수행할 수 있는 능력이 매우 필요합니다. 오늘은 nodejs의 mysql 퍼지 쿼리 구현에 대해 자세히 알아 보겠습니다.

1. Node.js 및 MySQL 설치
nodejs에서 mysql 퍼지 쿼리를 공식적으로 사용하기 전에 먼저 Node.js 및 MySQL을 설치해야 합니다. 여기서는 설치 단계를 반복하지 않습니다.

2. MySQL 데이터베이스에 연결
Node.js에서 MySQL 데이터베이스에 연결하려면 타사 모듈인 mysql 모듈을 사용해야 합니다. 따라서 npm을 통해 mysql 모듈을 설치해야 합니다. 설치 방법은 명령줄에 npm install mysql을 입력하는 것입니다.

mysql 모듈을 설치한 후에는 mysql 모듈을 도입하고 연결을 생성해야 합니다. 구체적인 코드는 다음과 같습니다.

const mysql = require('mysql');

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

connection.connect();
로그인 후 복사

3. Node.js의 퍼지 쿼리
Node.js에서는 MySQL의 LIKE 연산자를 사용해 퍼지 쿼리를 구현할 수 있습니다. LIKE 연산자는 WHERE 절의 열에서 패턴을 검색하는 데 사용됩니다. 기본 구문은 다음과 같습니다.

SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern;
로그인 후 복사

LIKE 구문에서 패턴은 검색할 문자열 또는 문자 패턴을 지정하는 데 사용됩니다. 패턴에 % 및 _ 와일드카드를 사용하여 퍼지 검색을 수행할 수 있습니다. 구체적인 의미는 다음과 같습니다.
%: 0개 이상의 문자를 나타냅니다.
_: 단일 문자를 나타냅니다.

학생의 이름(name)과 학생 번호(sno)가 포함된 학생 테이블이 있다고 가정합니다. 이제 Zhang이라는 성을 가진 모든 학생의 정보를 쿼리해야 합니다. 구체적인 코드는 다음과 같습니다.

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();
로그인 후 복사

위 코드를 통해 학생 테이블에서 Zhang이라는 성을 가진 학생에 대한 퍼지 쿼리를 얻을 수 있습니다. 여기서, % 와일드카드 문자는 Zhang 성이 뒤에 어떤 문자가 와도 매칭이 가능하여 Zhang 성을 가진 모든 학생의 정보를 조회할 수 있다는 의미이다.

4. SQL 주입을 피하세요
위 코드에서는 퍼지 쿼리를 구현했지만 매우 심각한 문제가 있는데, 바로 SQL 주입입니다. 이전 코드에서는 사용자가 입력한 검색 내용을 SQL 문에 직접 엮어 공격자에게 악성 코드를 주입할 수 있는 기회를 제공했습니다. 따라서 이러한 위험을 방지하려면 몇 가지 규칙을 따라야 합니다.

일반적으로 문자열을 이스케이프하여 SQL 주입을 피할 수 있습니다. 구체적인 코드는 다음과 같습니다.

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();
로그인 후 복사

위 코드에서는 mysql.escape() 메소드를 통해 사용자가 입력한 검색 내용을 이스케이프 처리했습니다. 이렇게 하면 SQL 주입 문제를 피할 수 있습니다.

5. 요약
nodejs에서 퍼지 쿼리에 mysql을 사용하는 것은 매우 실용적이고 필요한 작업입니다. Node.js에 캡슐화된 mysql 모듈을 사용하면 MySQL 데이터베이스에 쉽게 연결하고 다양한 쿼리 작업을 구현할 수 있습니다. 퍼지 쿼리를 수행할 때 데이터 보안을 보장하기 위해 SQL 주입 위험을 피하도록 주의해야 합니다.

위 내용은 Nodejs는 mysql 퍼지 쿼리를 사용합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿