2011-07-26 39 views
0

我有下面的代码插入一个“任务”到一个值为“任务”的表中。我试图修改这个语句以将多个值插入到多个列中,但是由于我不熟悉格式,所以似乎无法使其工作。使用Javascript的帮助SQL插入

sombody可以告诉我如何修改插入多个值吗?

var item = this.$.newItem.getValue(); 
this.$.db.query('INSERT INTO tasks (task) VALUES (?)', { values: [ item ] }); 

非常感谢。

+3

JavaScript库的憎恶可以让你执行数据库插入? – Jamiec

+0

这是在HP WebOs Enyo框架内插入本地SQLite数据库 – levi

+0

这是websql吗?如果不是这是我在堆栈上看到的最大的安全风险。 – Caimen

回答

1

不知道这是什么JavaScript是实际上做使得它很难回答这个问题,但我只想说,在一个SQL查询值插入多个字段的语法如下

INSERT INTO 表名COL1COL2科隆)VALUES(VAL1val2的VALN

作为猜测,我会说你正在寻找

this.$.db.query('INSERT INTO tasks (task, some_other_field) VALUES (?,?)', { values: [ item, some_other_input ] }); 

每个“?”在你的sql查询中,你需要values数组中的另一个参数。

2

我不确定您是否使用某种类型的库,但如果您使用SQLite的标准Web SQL接口,则第二个参数是值为的数组,而不是像您一样的对象。所以代码看起来更像

db.transaction(
    function (transaction) { 
     transaction.executeSql(
       "INSERT OR IGNORE INTO contact (contactId, nameG, nameF, orgContactId, accountId) VALUES (?, ?, ?, ?, ?)", 
       [contact.contactId, contact.nameG, contact.nameF, contact.orgContactId, contact.accountId], 
       function (transaction, resultSet) { // SQL INSERT statement success 
        // do something now that the item has been saved 
       }, // end statement success callback 
       function (transaction, sqlError) { // statement fail 
        // report failed operation 
        return true; // abort transaction 
       } 
     ); 
    } // end transaction function 
    // no transaction callbacks 
); // end transaction call