English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
عند تنفيذ استعلام MySQL في Node.js، سيتم إرجاع كائن Result Object المسمى إلى الدالة المرتجعة. يحتوي الكائن الناتج على مجموعة أو خصائص توفر معلومات حول تنفيذ الاستعلام في MySQL Server.
نتيجة الكائن يعتمد على الاستعلام الذي يتم تنفيذه على MySQL Server. يصف الجدول أدناه محتوى نتائج الكائن للاستعلام، مثل الاختيار، الإدراج، التحديث والإزالة.
MySQL 查询 | 结果对象 |
SELECT FROM | 包含记录的结果集 |
INSERT INTO | 包含执行状态的对象 |
UPDATE | 包含执行状态的对象 |
DELETE FROM | 包含执行状态的对象 |
我们将在以下示例的帮助下了解如何访问结果集中记录的属性以及如何访问执行状态的属性。
MySQL SELECT FROM 查询– 访问ResultSet
MySQL INSERT INTO 查询–访问结果对象的属性
MySQL UPDATE 查询-访问结果对象的属性
MySQL DELETE FROM 查询-访问结果对象的属性
我们可以使用点(.)运算符将结果集中的记录作为数组和记录的属性来访问。
// Node.js MySQL结果对象示例 // 引入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; // إذا تم إنشاء الاتصال بنجاح 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 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; // إذا تم إنشاء الاتصال بنجاح 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) { // إذا ظهر أي خطأ أثناء تنفيذ الاستعلام المذكور أعلاه، فتقوم ب رمي الخطأ if (err) throw err; // إذا لم يكن هناك خطأ، فستحصل على النتيجة console.log(result); console.log("Number of rows affected : " + result.affectedRows); console.log("Number of records affected with warning : " + result.warningCount); console.log("Message from MySQL Server : " + 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 } Number of rows affected : 3 عدد السجلات المتأثرة مع التحذير: 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; // إذا تم إنشاء الاتصال بنجاح con.query("UPDATE students SET marks=84 WHERE marks=74", function err, result, fields) { // إذا ظهر أي خطأ أثناء تنفيذ الاستعلام المذكور أعلاه، فتقوم ب رمي الخطأ if (err) throw err; // إذا لم يكن هناك خطأ، فستحصل على النتيجة console.log(result); console.log("Number of rows affected : " + result.affectedRows); console.log("Number of records affected with warning : " + result.warningCount); console.log("Message from MySQL Server : " + result.message); }); });
تشغيل البرنامج المذكور أعلاه باستخدام نود في الطرفية
إخراج الطرفية
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 عدد السجلات المتأثرة مع التحذير: 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" // 使用指定的数据库 }); // الاتصال بالقاعدة البيانات. 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("Number of rows affected : " + result.affectedRows); console.log("Number of records affected with warning : " + result.warningCount); console.log("Message from MySQL Server : " + 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 Message from MySQL Server :
في هذا الدليل لـ Node.js - Node.js MySQL، تعلمنا كيفية الوصول إلى سجلات مجموعة النتائج، واستعرضنا كيفية الوصول إلى خصائص نتائج الدالة التي تحتوي على معلومات تنفيذ الاستعلام عبر الأمثلة.