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

NodeJS 基礎トレーニング

NodeJS Express.js

NodeJS バッファ&URL;

NodeJS MySql

NodeJS MongoDB

NodeJS ファイル(FS)

NodeJS その他

Node.js MySQL 結果オブジェクト

Node.jsでMySQLクエリを実行する際、Result Objectと呼ばれるオブジェクトがコールバック関数に戻されます。結果オブジェクトは、MySQL Serverのクエリ実行情報を提供する結果セットや属性を含みます。

Node.js MySQL結果オブジェクト

結果オブジェクトの内容は、MySQL Serverに対して実行されたSQLクエリに依存します。以下のテーブルは、クエリの結果オブジェクト、例えば選択、挿入、更新、削除を説明しています。

MySQLクエリ結果オブジェクト
SELECT FROMレコードを含む結果セット
INSERT INTO実行状態を含むオブジェクト
UPDATE実行状態を含むオブジェクト
DELETE FROM

実行状態を含むオブジェクト

以下の例を助けに、結果セットのレコードの属性にアクセスする方法と実行状態の属性にアクセスする方法を学びます。

  • MySQL SELECT FROMクエリ - ResultSetにアクセス

  • MySQL INSERT INTOクエリ - 結果オブジェクトの属性にアクセス

  • MySQL UPDATEクエリ-結果オブジェクトの属性にアクセス

  • MySQL DELETE FROMクエリ-結果オブジェクトの属性にアクセス

例 - MySQL SELECT FROMクエリ - ResultSetにアクセス

結果セットのレコードを配列とレコードの属性としてアクセスするために点(.)演算子を使用できます。

// 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:~/ワークスペース/nodejs$ node selectUseResultObject.js 
ジョン
Arjun
Prasanth
Adarsh
Raja
Sai
Ross
Monica
Lee
Bruce
Sukumar

例 - MySQL INSERT INTOクエリ

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("影響を受けた行数: ", + result.affectedRows); 
    console.log("警告とともに影響を受けたレコード数: ", + result.warningCount); 
    console.log("MySQLサーバからのメッセージ: ", + result.message); 
  }); 
 });

ターミナルで上記のプログラムを実行します

ターミナル出力

arjun@arjun-VPCEH26EN:~/ワークスペース/nodejs$ node MultipleInsertExample.js 
OkPacket { 
  fieldCount: 0, 
  affectedRows: 3, 
  insertId: 0, 
  serverStatus: 2, 
  warningCount: 0, 
  メッセージ: '&Records: 3  重複: 0  警告: 0', 
  プロトコル41: true, 
  changedRows: 0} 
影響を受けた行数: 3
警告とともに影響を受けたレコード数:0
MySQLサーバーからのメッセージ: &Records: 3 重複: 0 警告: 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; 
  // 接続が成功した場合
  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:~/ワークスペース/nodejs$ node UpdateRecordsFiltered.js 
OkPacket { 
  fieldCount: 0, 
  affectedRows: 3, 
  insertId: 0, 
  serverStatus: 34, 
  warningCount: 0, 
  メッセージ: '(Rows matched: 3  変更: 3  警告: 0', 
  プロトコル41: true, 
  changedRows: 3 } 
影響を受けた行数: 3
警告とともに影響を受けたレコード数:0
MySQLサーバーからのメッセージ: (Rows matched: 3 変更: 3 警告: 0

例 - 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; 
  // 接続が成功した場合
  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:~/ワークスペース/nodejs$ node deleteRecordsFiltered.js 
OkPacket { 
  fieldCount: 0, 
  affectedRows: 6, 
  insertId: 0, 
  serverStatus: 34, 
  warningCount: 0, 
  メッセージ: '', 
  プロトコル41: true, 
  changedRows: 0} 
影響を受けた行数: 6
警告とともに影響を受けたレコード数:0
MySQLサーバからのメッセージ:

結論

このNode.jsチュートリアルでは、Node.js MySQLの結果オブジェクトで結果セットのレコードへのアクセスを学び、例を通じてクエリ実行情報を含む結果オブジェクトの属性にアクセスしました。