Помогите с Javascript SQL INSERT - PullRequest
0 голосов
/ 26 июля 2011

У меня есть следующий код, который вставляет «задачу» в таблицу со значением для «задачи».Я пытаюсь изменить это утверждение, чтобы вставить несколько значений в несколько столбцов, но я не могу заставить его работать, так как я не знаком с форматом.

Может кто-нибудь показать мне, как можно изменить, чтобы вставить несколькоценности?

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

Большое спасибо.

Ответы [ 3 ]

2 голосов
/ 26 июля 2011

Я предполагаю, что вы не хотели помечать этот MySQL ....

Однако - полезный класс для помощи с запросами Enyo DB:

https://github.com/onecrayon/database-webos

Реализация одного карандаша.Очень хорошо работает для Enyo.

2 голосов
/ 26 июля 2011

Я не уверен, используете ли вы какую-то библиотеку, но если вы используете стандартный интерфейс SQL для SQLite, второй аргумент - это массив значений, а не объект как у вас. Так что код больше похож на

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
1 голос
/ 26 июля 2011

Не зная, что на самом деле делает этот javascript, сложно ответить на этот вопрос, но достаточно сказать, что синтаксис для вставки значений в несколько полей в SQL-запросе выглядит следующим образом

INSERT INTO tableName ( col1 , col2 , coln ) ЗНАЧЕНИЯ ( val1 , val2 , valn )

Как * всего образованное предположение, я бы сказал, что вы ищете

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

за каждое "?" в вашем sql-запросе вам понадобится другой параметр в массиве values.

...