tribedb
Version:
Unlimited expansion MySQL cluster storage system
75 lines (63 loc) • 1.95 kB
JavaScript
/**
*
* insert
*
*/
const mysql = require('mysql');
const pool = require('./pool.js');
/**
* 插入数据
*/
exports.insert = function(table, data)
{
return new Promise(function (resolve, reject) {
pool.conn(table, {write:1}, function(err, conn){
if(err) return reject(err);
conn.query("INSERT INTO `"+table+"` SET ?", data, function(err, rows){
// log(rows);
conn.release(); // 必须释放回连接池!
if(err) return reject(err);
resolve(rows); // 返回
});
});
});
};
/**
* 批量插入数据
*/
exports.inserts = function(table, datas)
{
return new Promise(function (resolve, reject) {
let data1 = datas[0];
if( ! data1 ){
return reject('tribe inserts no data !');
}
// 字段
let fields = [];
for(let i in data1){
fields.push( i );
}
let fields_str = '(`' + fields.join('`,`') + '`)';
// 数据
let data_ary = [];
for(let k in datas){
let dts = [];
for(let a in fields){
dts.push( mysql.escape( datas[k][fields[a]] ) );
}
data_ary.push( '('+dts.join(',')+')' );
}
let data_str = data_ary.join(',');
// 请求执行
// console.log("INSERT INTO `"+table+"` "+fields_str+" VALUES "+data_str);
pool.conn(table, {write:1}, function(err, conn){
if(err) return reject(err);
conn.query("INSERT INTO `"+table+"` "+fields_str+" VALUES "+data_str, function(err, rows){
// log(rows);
conn.release(); // 必须释放回连接池!
if(err) return reject(err);
resolve(rows); // 返回
});
});
});
};