English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

NodeJS базовый учебник

NodeJS Express.js

NodeJS буфер & URL;

NodeJS MySql

NodeJS MongoDB

NodeJS файл (FS)

NodeJS другие

Объект результатов MySQL в Node.js

При выполнении MySQL-запроса в Node.js объект с именем Result Object возвращается в回调-функцию. Объект результата содержит результаты набора данных или атрибуты, предоставляющие информацию о выполнении запроса на MySQL Server.

Node.js MySQL результат объекта

Содержимое объекта результата зависит от SQL-запроса, выполняемого на MySQL Server. В таблице описаны результаты объекта запроса, такие как выбор, вставка, обновление и удаление.

Запрос MySQLОбъект результата
SELECT FROMНабор результатов, содержащий записи
INSERT INTOОбъект, содержащий состояние выполнения
UPDATEОбъект, содержащий состояние выполнения
DELETE FROM

Объект, содержащий состояние выполнения

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

  • Запрос SELECT FROM MySQL – доступ к ResultSet

  • Запрос INSERT INTO MySQL – доступ к свойствам объекта результата

  • Запрос UPDATE MySQL – доступ к свойствам объекта результата

  • Запрос DELETE FROM MySQL – доступ к свойствам объекта результата

Пример – Запрос SELECT FROM MySQL – доступ к ResultSet

Мы можем использовать оператор точечной точки (.) для доступа к записям в наборе результатов как к свойствам массива и записи.

// Пример объекта результата MySQL в Node.js
// Включение модуля mysql
var mysql = require('mysql'); 
 
// Создание переменной подключения с необходимыми деталями
var con = mysql.createConnection({ 
  host: "localhost", // IP-адрес сервера, на котором запущен MySQL
  user: "arjun", // имя пользователя базы данных MySQL
  password: "password", // соответствующий пароль
  database: "studentsDB" // Использование указанной базы данных
 }); 
 
// Установление подключения к базе данных.
con.connect(function(err) { 
  if (err) throw err; 
  // 如果连接成功
  con.query("SELECT * FROM students", function(err, result, fields) { 
    // 如果在执行上述查询时出现任何错误,则抛出错误
    if (err) throw err; 
    // 如果没有错误,您将得到结果
    // Итерация по всем строкам в результате
    Object.keys(result).forEach(function(key) { 
      var row = result[key]; 
      console.log(row.name) 
    }); 
  }); 
 });

在终端中使用节点运行上述程序

终端输出

arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node selectUseResultObject.js 
Джон
Арджун
Прасан
Адарш
Ра贾
Сай
Росс
Моника
Ли
Брюс
Сукумар

Пример – Запрос INSERT INTO MySQL

Мы можем использовать оператор DOT (.) для доступа к свойствам объекта результата.

// Включение модуля mysql
var mysql = require('mysql'); 
 
// Создание переменной подключения с необходимыми деталями
var con = mysql.createConnection({ 
  host: "localhost", // IP-адрес сервера, на котором запущен MySQL
  user: "arjun", // имя пользователя базы данных MySQL
  password: "password", // соответствующий пароль
  database: "studentsDB" // Использование указанной базы данных
 }); 
 
// Установление подключения к базе данных.
con.connect(function(err) { 
  if (err) throw err; 
  // 如果连接成功
  var records = [ 
    ['Джек', 16, 82], 
    ['Прия', 17, 88], 
    ['Эми', 15, 74] 
  ]; 
  con.query("ВВОД В ТАБЛИЦУ students (имя, номер_учета, оценки) VALUES ?,", records, function(err, result, fields) { 
    // 如果在执行上述查询时出现任何错误,则抛出错误
    if (err) throw err; 
    // 如果没有错误,您将得到结果
    console.log(result); 
    console.log("受影响的行数:" + result.affectedRows); 
    console.log("受警告影响的记录数:" + result.warningCount); 
    console.log("来自MySQL服务器的消息:" + result.message); 
  }); 
 });

在终端中使用节点运行上述程序

终端输出

arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node MultipleInsertExample.js 
OkPacket { 
  fieldCount: 0, 
  affectedRows: 3, 
  insertId: 0, 
  serverStatus: 2, 
  warningCount: 0, 
  message: '&Records: 3 Duplicates: 0 Warnings: 0', 
  protocol41: true, 
  changedRows: 0} 
Количество строк,affectedRows: 3
受警告影响的记录数:0
Сообщение от сервера MySQL: &Records: 3 Duplicates: 0 Warnings: 0

Пример – Запрос UPDATE MySQL

Мы можем использовать оператор DOT (.) для доступа к свойствам объекта результата.

// Включение модуля mysql
var mysql = require('mysql'); 
 
// Создание переменной подключения с необходимыми деталями
var con = mysql.createConnection({ 
  host: "localhost", // IP-адрес сервера, на котором запущен MySQL
  user: "arjun", // имя пользователя базы данных MySQL
  password: "password", // соответствующий пароль
  database: "studentsDB" // Использование указанной базы данных
 }); 
 
// Установление подключения к базе данных.
con.connect(function(err) { 
  if (err) throw err; 
  // 如果连接成功
  con.query("UPDATE students SET marks=84 WHERE marks=74", function(err, result, fields) { 
    // 如果在执行上述查询时出现任何错误,则抛出错误
    if (err) throw err; 
    // 如果没有错误,您将得到结果
    console.log(result); 
    console.log("受影响的行数:" + result.affectedRows); 
    console.log("受警告影响的记录数:" + result.warningCount); 
    console.log("来自MySQL服务器的消息:" + result.message); 
  }); 
 });

在终端中使用节点运行上述程序

终端输出

arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node UpdateRecordsFiltered.js 
OkPacket { 
  fieldCount: 0, 
  affectedRows: 3, 
  insertId: 0, 
  serverStatus: 34, 
  warningCount: 0, 
  message: '(Соответствующие строки: 3 Изменены: 3 Предупреждения: 0', 
  protocol41: true, 
  changedRows: 3} 
Количество строк,affectedRows: 3
受警告影响的记录数:0
Сообщение от сервера MySQL: (Соответствующие строки: 3 Изменены: 3 Предупреждения: 0

Пример – Удаление из запроса MySQL

Мы можем использовать оператор DOT (.) для доступа к свойствам объекта результата.

// Включение модуля mysql
var mysql = require('mysql'); 
 
// Создание переменной подключения с необходимыми деталями
var con = mysql.createConnection({ 
  host: "localhost", // IP-адрес сервера, на котором запущен MySQL
  user: "arjun", // имя пользователя базы данных MySQL
  password: "password", // соответствующий пароль
  database: "studentsDB" // Использование указанной базы данных
 }); 
 
// 连接到数据库。
con.connect(function(err) { 
  if (err) throw err; 
  // 如果连接成功
  con.query("DELETE FROM students WHERE rollno>10", function(err, result, fields) { 
    // 如果在执行上述查询时出现任何错误,则抛出错误
    if (err) throw err; 
    // 如果没有错误,您将得到结果
    console.log(result); 
    console.log("受影响的行数:" + result.affectedRows); 
    console.log("受警告影响的记录数:" + result.warningCount); 
    console.log("来自MySQL服务器的消息:" + result.message); 
  }); 
 });

在终端中使用节点运行上述程序

终端输出

arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node deleteRecordsFiltered.js 
OkPacket { 
  fieldCount: 0, 
  affectedRows: 6, 
  insertId: 0, 
  serverStatus: 34, 
  warningCount: 0, 
  message: '', 
  protocol41: true, 
  changedRows: 0} 
受影响的行数:6
受警告影响的记录数:0
来自MySQL服务器的消息:

结论

在本Node.js教程– Node.js MySQL –结果对象中,我们学习了访问结果集的记录,并通过示例访问了包含有关查询执行信息的结果对象的属性。