【问题标题】:How do I insert a mysql row from Object (in nodeJS)?如何从 Object(在 nodeJS 中)插入 mysql 行?
【发布时间】:2021-06-16 05:44:30
【问题描述】:

现在,当我想添加数据在 JS 对象中的行时,我会使用这种繁琐的方法

向表中添加一行:

const mysql = require('mysql')
var db = mysql.createConnection(DBInfo)

var databaseObj = {val1: '1', name: 'John', age: 40} // row to insert

var query = 'INSERT INTO my_table ('
var databaseKeys = Object.keys(databaseObj)
for (let i = 0; i < databaseKeys.length; i++) {
  query += databaseKeys[i] + (i !== databaseKeys.length - 1 ? ', ' : ')')
}
query += ' ' + 'VALUES('
for (let i = 0; i < databaseKeys.length; i++) {
  query += '\'' + databaseObj[databaseKeys[i]] + '\'' + (i !== databaseKeys.length - 1 ? ', ' : ')')
}

db.query(query, function (err, results, fields) {...

是否有任何更简单或更简洁的方法可以将行添加到表中,其中此类行数据位于 JS 对象中?我看到的示例使用数组数组,但在我的情况下,信息位于对象中

【问题讨论】:

    标签: mysql node.js node-mysql


    【解决方案1】:

    我应该使用INSERT into table SET,因为they are equivalent

    var db = mysql.createConnection(DBInfo)
    
    var databaseObj = {val1: '1', name: 'John', age: 40}
    
    var query = 'INSERT INTO my_table SET ?'
    
    db.query(query, databaseObj, function (err, results, fields) {...
    

    var db = mysql.createConnection(DBInfo)
    
    var databaseObj = {val1: '1', name: 'John', age: 40}
    
    var query = 'INSERT INTO my_table SET ' + db.escape(databaseObj)
    
    db.query(query, function (err, results, fields) {...
    

    【讨论】:

      猜你喜欢
      • 2017-01-15
      • 2021-05-21
      • 2014-10-12
      • 2020-10-25
      • 2020-09-02
      • 2021-10-25
      • 2014-11-15
      • 2020-02-29
      相关资源
      最近更新 更多