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

Tutorial di base NodeJS

NodeJS Express.js

NodeJS Buffer&URL;

NodeJS MySql

NodeJS MongoDB

NodeJS File(FS)

Altri NodeJS

Oggetto di risultato MySQL in Node.js

Quando si esegue una query MySQL in Node.js, un oggetto chiamato Result Object viene restituito alla funzione di callback. L'oggetto di risultato contiene un insieme di risultati o attributi che forniscono informazioni sull'esecuzione della query nel server MySQL.

Oggetto di risultato MySQL di Node.js

Il contenuto dell'oggetto di risultato dipende dalla query SQL eseguita sul server MySQL. La tabella seguente descrive il contenuto dell'oggetto di risultato della query, ad esempio selezione, inserimento, aggiornamento e eliminazione.

Query MySQLOggetto di risultato
SELECT FROMSet di risultati contenente i record
INSERT INTOOggetto contenente lo stato di esecuzione
UPDATEOggetto contenente lo stato di esecuzione
DELETE FROM

Oggetto contenente lo stato di esecuzione

Con l'aiuto degli esempi seguenti, impareremo come accedere agli attributi dei record del set di risultati e come accedere agli attributi dello stato di esecuzione.

  • Query SELECT FROM MySQL - Accesso al ResultSet

  • Query INSERT INTO MySQL - Accesso agli attributi dell'oggetto di risultato

  • Query UPDATE MySQL - Accesso agli attributi dell'oggetto di risultato

  • Query DELETE FROM MySQL - Accesso agli attributi dell'oggetto di risultato

Esempio - Query SELECT FROM MySQL - Accesso al ResultSet

Possiamo utilizzare l'operatore di punto (.) per accedere ai record del set di risultati come proprietà di array e record.

// Esempio di oggetto di risultato MySQL in Node.js
// 引入mysql模块
var mysql = require('mysql'); 
 
// 创建具有所需详细信息的连接变量
var con = mysql.createConnection({ 
  host: "localhost", // 运行mysql的服务器的IP地址
  user: "arjun", // mysql数据库的用户名
  password: "password", // 对应的密码
  database: "studentsDB" // 使用指定的数据库
 }); 
 
// 建立与数据库的连接。
con.connect(function(err) { 
  if (err) throw err; 
  // Se la connessione è riuscita
  con.query("SELECT * FROM students", function(err, result, fields) { 
    // Se si verifica un errore durante l'esecuzione della query sopra, viene lanciato un errore
    if (err) throw err; 
    // Se non ci sono errori, otterrai i risultati
    // Iterazione di tutte le righe del risultato
    Object.keys(result).forEach(function(key) { 
      var row = result[key]; 
      console.log(row.name) 
    }); 
  }); 
 });

Esegui il programma sopra con Node nel terminale

Output del terminale

arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node selectUseResultObject.js 
John
Arjun
Prasanth
Adarsh
Raja
Sai
Ross
Monica
Lee
Bruce
Sukumar

Esempio - Query INSERT INTO MySQL

我们可以使用DOT(.)运算符访问结果对象的属性。

// 引入mysql模块
var mysql = require('mysql'); 
 
// 创建具有所需详细信息的连接变量
var con = mysql.createConnection({ 
  host: "localhost", // 运行mysql的服务器的IP地址
  user: "arjun", // mysql数据库的用户名
  password: "password", // 对应的密码
  database: "studentsDB" // 使用指定的数据库
 }); 
 
// 建立与数据库的连接。
con.connect(function(err) { 
  if (err) throw err; 
  // Se la connessione è riuscita
  var records = [ 
    ['Jack', 16, 82], 
    ['Priya', 17, 88], 
    ['Amy', 15, 74] 
  ; 
  con.query("INSERT INTO students (name,rollno,marks) VALUES ?", [records], function(err, result, fields) { 
    // Se si verifica un errore durante l'esecuzione della query sopra, viene lanciato un errore
    if (err) throw err; 
    // Se non ci sono errori, otterrai i risultati
    console.log(result); 
    console.log("Numero di righe influenzate: " + result.affectedRows); 
    console.log("Numero di record influenzati con avviso: " + result.warningCount); 
    console.log("Messaggio dal server MySQL: " + result.message); 
  }); 
 });

Esegui il programma sopra con Node nel terminale

Output del terminale

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} 
Number of rows affected : 3
Numero di record influenzati con avviso: 0
Message from MySQL Server : &Records: 3 Duplicates: 0 Warnings: 0

示例– MySQL UPDATE查询

我们可以使用DOT(.)运算符访问结果对象的属性。

// 引入mysql模块
var mysql = require('mysql'); 
 
// 创建具有所需详细信息的连接变量
var con = mysql.createConnection({ 
  host: "localhost", // 运行mysql的服务器的IP地址
  user: "arjun", // mysql数据库的用户名
  password: "password", // 对应的密码
  database: "studentsDB" // 使用指定的数据库
 }); 
 
// 建立与数据库的连接。
con.connect(function(err) { 
  if (err) throw err; 
  // Se la connessione è riuscita
  con.query("UPDATE students SET marks=84 WHERE marks=74", function err, result, fields) { 
    // Se si verifica un errore durante l'esecuzione della query sopra, viene lanciato un errore
    if (err) throw err; 
    // Se non ci sono errori, otterrai i risultati
    console.log(result); 
    console.log("Numero di righe influenzate: " + result.affectedRows); 
    console.log("Numero di record influenzati con avviso: " + result.warningCount); 
    console.log("Messaggio dal server MySQL: " + result.message); 
  }); 
 });

Esegui il programma sopra con Node nel terminale

Output del terminale

arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node UpdateRecordsFiltered.js 
OkPacket { 
  fieldCount: 0, 
  affectedRows: 3, 
  insertId: 0, 
  serverStatus: 34, 
  warningCount: 0, 
  message: '(Rows matched: 3 Changed: 3 Warnings: 0', 
  protocol41: true, 
  changedRows: 3 } 
Number of rows affected : 3
Numero di record influenzati con avviso: 0
Message from MySQL Server : (Rows matched: 3 Changed: 3 Warnings: 0

示例– MySQL从查询中删除

我们可以使用DOT(.)运算符访问结果对象的属性。

// 引入mysql模块
var mysql = require('mysql'); 
 
// 创建具有所需详细信息的连接变量
var con = mysql.createConnection({ 
  host: "localhost", // 运行mysql的服务器的IP地址
  user: "arjun", // mysql数据库的用户名
  password: "password", // 对应的密码
  database: "studentsDB" // 使用指定的数据库
 }); 
 
// Connettiti al database.
con.connect(function(err) { 
  if (err) throw err; 
  // Se la connessione è riuscita
  con.query("DELETE FROM students WHERE rollno>10", function(err, result, fields) { 
    // Se si verifica un errore durante l'esecuzione della query sopra, viene lanciato un errore
    if (err) throw err; 
    // Se non ci sono errori, otterrai i risultati
    console.log(result); 
    console.log("Numero di righe influenzate: " + result.affectedRows); 
    console.log("Numero di record influenzati con avviso: " + result.warningCount); 
    console.log("Messaggio dal server MySQL: " + result.message); 
  }); 
 });

Esegui il programma sopra con Node nel terminale

Output del terminale

arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node deleteRecordsFiltered.js 
OkPacket { 
  fieldCount: 0, 
  affectedRows: 6, 
  insertId: 0, 
  serverStatus: 34, 
  warningCount: 0, 
  message: '', 
  protocol41: true, 
  changedRows: 0} 
Numero di righe influenzate: 6
Numero di record influenzati con avviso: 0
Messaggio dal server MySQL:

Conclusione

In questo tutorial Node.js – Node.js MySQL – abbiamo imparato a accedere ai record del result set e a esplorare le proprietà del result object contenenti informazioni sull'esecuzione della query, attraverso un esempio.