Учебник по Node.js

ГЛАВНАЯ СТРАНИЦА Node.js Введение в Node.js Node.js Начало работы Модули Node.js HTTP-модуль Node.js Файловая система Node.js URL-модуль Node.js Node.js NPM События Node.js Загрузить файлы Node.js Электронная почта Node.js

Node.js MySQL

Начать работу с MySQL MySQL Создать базу данных MySQL Создать таблицу MySQL вставить в MySQL выбрать из MySQL Где Порядок MySQL MySQL Удалить Таблица удаления MySQL Обновление MySQL Лимит MySQL MySQL присоединиться

Node.js MongoDB

Начать работу с MongoDB MongoDB Создать базу данных MongoDB Создать коллекцию Вставка MongoDB MongoDB Найти Запрос MongoDB Сортировка MongoDB MongoDB Удалить Коллекция MongoDB Drop Обновление MongoDB Лимит MongoDB Присоединиться к MongoDB

Малиновый Пи

Начать работу с RasPi Введение в RasPi GPIO Мигающий светодиод RasPi Светодиод RasPi и кнопка Проточные светодиоды RasPi Веб-сокет RasPi Веб-сокет со светодиодной подсветкой RasPi RGB Компоненты RasPi

Справочник по Node.js

Встроенные модули

Node.js MySQL Где


Выбрать с фильтром

При выборе записей из таблицы вы можете отфильтровать выборку с помощью оператора WHERE:

Пример

Выберите записи с адресом "Park Lane 38":

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  con.query("SELECT * FROM customers WHERE address = 'Park Lane 38'", function (err, result) {
    if (err) throw err;
    console.log(result);
  });
});

Сохраните приведенный выше код в файле с именем «demo_db_where.js» и запустите файл:

Запустите «demo_db_where.js»

C:\Users\Your Name>node demo_db_where.js

Что даст вам этот результат:

[
  { id: 11, name: 'Ben', address: 'Park Lane 38'}
]


Подстановочные знаки

Вы также можете выбрать записи, которые начинаются, включают или заканчиваются данной буквой или фразой.

Используйте подстановочный знак «%» для представления нуля, одного или нескольких символов:

Пример

Выберите записи, в которых адрес начинается с буквы «S»:

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  con.query("SELECT * FROM customers WHERE address LIKE 'S%'", function (err, result) {
    if (err) throw err;
    console.log(result);
  });
});

Сохраните приведенный выше код в файле с именем «demo_db_where_s.js» и запустите файл:

Запустите «demo_db_where_s.js»

C:\Users\Your Name>node demo_db_where_s.js

Что даст вам этот результат:

[
  { id: 8, name: 'Richard', address: 'Sky st 331'},
  { id: 14, name: 'Viola', address: 'Sideway 1633'}
]

Экранирование значений запроса

Когда значения запроса являются переменными, предоставленными пользователем, вы должны экранировать значения.

Это делается для предотвращения SQL-инъекций, которые являются распространенным методом веб-хакерства для уничтожения или неправильного использования вашей базы данных.

В модуле MySQL есть методы для экранирования значений запроса:

Пример

Экранируйте значения запроса, используя mysql.escape() метод:

var adr = 'Mountain 21';
var sql = 'SELECT * FROM customers WHERE address = ' + mysql.escape(adr);
con.query(sql, function (err, result) {
  if (err) throw err;
  console.log(result);
});

Вы также можете использовать a ?в качестве заполнителя для значений, которые вы хотите экранировать.

В этом случае переменная передается вторым параметром в методе query():

Пример

Экранируйте значения запроса, используя ? метод заполнителя:

var adr = 'Mountain 21';
var sql = 'SELECT * FROM customers WHERE address = ?';
con.query(sql, [adr], function (err, result) {
  if (err) throw err;
  console.log(result);
});

Если у вас есть несколько заполнителей, массив будет содержать несколько значений в следующем порядке:

Пример

Несколько заполнителей:

var name = 'Amy';
var adr = 'Mountain 21';
var sql = 'SELECT * FROM customers WHERE name = ? OR address = ?';
con.query(sql, [name, adr], function (err, result) {
  if (err) throw err;
  console.log(result);
});