Node.js MySQL 插入表记录

插入表记录

要在 MySQL 表中插入数据,请使用 "INSERT INTO" 语句。

实例

在 "customers" 表中插入一条记录:

  1. var mysql = require('mysql');
  2. var con = mysql.createConnection({
  3. host: "localhost",
  4. user: " yourusername ",
  5. password: " yourpassword ",
  6. database: "mydb"
  7. });
  8. con.connect(function(err) {
  9. if (err) throw err;
  10. console.log("Connected!");
  11. <strong> var sql = "INSERT INTO customers (name, address) VALUES ('Company Inc', 'Highway 37')";
  12. </strong> con.query(sql, function (err, result) {
  13. if (err) throw err;
  14. console.log("1 record inserted");
  15. });
  16. });

将上述代码保存在名为 "demo_db_insert.js" 的文件中,然后运行该文件:

运行 "demo_db_insert.js"

C:\Users\ Your Name >node demo_db_insert.js

结果如下:

  1. Connected!
  2. 1 record inserted

插入多条记录

要插入多条记录,请创建一个包含值的数组,并在 sql 中插入一个问号,该问号将替换为值的数组:

INSERT INTO customers (name, address) VALUES ?

实例

在 "customers" 表中插入数据:

  1. var mysql = require('mysql');
  2. var con = mysql.createConnection({
  3. host: "localhost",
  4. user: " yourusername ",
  5. password: " yourpassword ",
  6. database: "mydb"
  7. });
  8. con.connect(function(err) {
  9. if (err) throw err;
  10. console.log("Connected!");
  11. var sql = "INSERT INTO customers (name, address) VALUES ?";
  12. var values = [
  13. ['John', 'Highway 71'],
  14. ['Peter', 'Lowstreet 4'],
  15. ['Amy', 'Apple st 652'],
  16. ['Hannah', 'Mountain 21'],
  17. ['Michael', 'Valley 345'],
  18. ['Sandy', 'Ocean blvd 2'],
  19. ['Betty', 'Green Grass 1'],
  20. ['Richard', 'Sky st 331'],
  21. ['Susan', 'One way 98'],
  22. ['Vicky', 'Yellow Garden 2'],
  23. ['Ben', 'Park Lane 38'],
  24. ['William', 'Central st 954'],
  25. ['Chuck', 'Main Road 989'],
  26. ['Viola', 'Sideway 1633']
  27. ];
  28. con.query(sql,<strong> [values]</strong>, function (err, result) {
  29. if (err) throw err;
  30. console.log("Number of records inserted: " + result.affectedRows);
  31. });
  32. });

将上述代码保存在名为 "demo_db_insert_multple.js" 的文件中,然后运行该文件:

运行 "demo_db_insert_multiple.js"

C:\Users\ Your Name >node demo_db_insert_multiple.js

结果如下:

  1. Connected!
  2. Number of records inserted: 14

结果对象

执行查询时,返回一个结果对象。

结果对象包含有关该查询对表数据的影响的信息。

从上面的示例返回的结果对象如下所示:

  1. {
  2. fieldCount: 0,
  3. affectedRows: 14,
  4. insertId: 0,
  5. serverStatus: 2,
  6. warningCount: 0,
  7. message: '\'Records:14 Duplicated: 0 Warnings: 0',
  8. protocol41: true,
  9. changedRows: 0
  10. }

属性的值可以这样显示:

实例

返回受影响的行数:

console.log(result.affectedRows)

结果如下:

  1. 14

获取插入数据的 ID

对于具有自动递增 id 字段的表,可以通过 result 结果对象来获取刚刚插入的行的 id。

注意:为了能够获得插入的 id,只能插入一行。

实例

在 "customers" 表中插入一条记录,并返回 ID:

  1. var mysql = require('mysql');
  2. var con = mysql.createConnection({
  3. host: "localhost",
  4. user: "yourusername ",
  5. password: "yourpassword ",
  6. database: "mydb"
  7. });
  8. con.connect(function(err) {
  9. if (err) throw err;
  10. var sql = "INSERT INTO customers (name, address) VALUES ('Michelle', 'Blue Village 1')";
  11. con.query(sql, function (err, result) {
  12. if (err) throw err;
  13. console.log("1 record inserted, ID: " + <strong>result.insertId</strong>);
  14. });
  15. });

将上述代码保存在名为 "demo_db_insert_id.js" 的文件中,然后运行该文件:

运行 "demo_db_insert_id.js"

C:\Users\ Your Name >node demo_db_insert_id.js

结果如下:

  1. 1 record inserted, ID: 15

分类导航