English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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 MySQL | Oggetto di risultato |
SELECT FROM | Set di risultati contenente i record |
INSERT INTO | Oggetto contenente lo stato di esecuzione |
UPDATE | Oggetto 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
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
我们可以使用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
我们可以使用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
我们可以使用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:
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.