English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
При выполнении MySQL-запроса в Node.js объект с именем Result Object возвращается в回调-функцию. Объект результата содержит результаты набора данных или атрибуты, предоставляющие информацию о выполнении запроса на MySQL Server.
Содержимое объекта результата зависит от SQL-запроса, выполняемого на MySQL Server. В таблице описаны результаты объекта запроса, такие как выбор, вставка, обновление и удаление.
Запрос MySQL | Объект результата |
SELECT FROM | Набор результатов, содержащий записи |
INSERT INTO | Объект, содержащий состояние выполнения |
UPDATE | Объект, содержащий состояние выполнения |
DELETE FROM | Объект, содержащий состояние выполнения |
Мы рассмотрим в следующем примере, как доступить свойства записей в наборе результатов и как доступить свойства состояния выполнения.
Запрос SELECT FROM MySQL – доступ к ResultSet
Запрос INSERT INTO MySQL – доступ к свойствам объекта результата
Запрос UPDATE MySQL – доступ к свойствам объекта результата
Запрос DELETE FROM MySQL – доступ к свойствам объекта результата
Мы можем использовать оператор точечной точки (.) для доступа к записям в наборе результатов как к свойствам массива и записи.
// Пример объекта результата 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 Джон Арджун Прасан Адарш Ра贾 Сай Росс Моника Ли Брюс Сукумар
Мы можем использовать оператор 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
Мы можем использовать оператор 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
Мы можем использовать оператор 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 –结果对象中,我们学习了访问结果集的记录,并通过示例访问了包含有关查询执行信息的结果对象的属性。