将数组或字符串转换为参数列表[SQLite插入绑定参数]



是否有任何方法将数组或字符串转换为函数的参数列表?

var data = ['ricardo','portugal',23];
test(data);
而不是将测试数组传递给示例函数,假装的结果是:
test('ricardo','portugal',23);

这是我的问题:我试图在JavaScript中创建一个SQLite插入函数,根据Appcelerator文档

这是我的插入函数:
var insert = function(rows) {
    if(rows.length) {
        var columns = "";
        _.each(rows[0],function(value) {
            columns += value + ",";
        });
        var query = "INSERT INTO users (" + columns + ") VALUES (?,?,?)";//"INSERT INTO users (name,country,age) VALUES (?,?,?)";
        columns = columns.slice(0, -1);
        _.map(rows,function(row) {
            var data1 = []
                data2 = "";
            _.each(row,function(value) {
                data1.push(value);
                data2 += value + ",";
            });
            data2 = data2.slice(0, -1);
            db.execute(query,data1); //test 1 - 'INSERT INTO users (name,country,age) VALUES (?,?,?)',['Ricardo','Portugal','24']
            db.execute(query,data2); //test 2 - 'INSERT INTO users (name,country,age) VALUES (?,?,?)',"'Ricardo','Portugal','24'"
            //expected result: 'INSERT INTO users (name,country,age) VALUES (?,?,?)','Ricardo','Portugal','24'
        });
    }
};

这是一个正在运行的例子:

insert([
    {name:"Ricardo",country:"Portugal",age:24},
    {name:"John",country:"England",age:27}
]);

在通过文档进行了一些研究之后,我发现没有必要将要插入的值分开,它接受值作为数组:

var thisName = 'Arthur';
var thisPhoneNo = '1-617-000-0000';
var thisCity = 'Mountain View';
db.execute('INSERT INTO people (name, phone_number, city) VALUES (?, ?, ?)', thisName, thisPhoneNo, thisCity);

我需要什么:

var personArray = ['Paul','020 7000 0000', 'London'];
db.execute('INSERT INTO people (name, phone_number, city) VALUES (?, ?, ?)', personArray);

Appcelerator Documentation: Ti.Database.ResultSet

最新更新