2015-10-10 5 views
1

Я прямо вперед вставить запрос,WebSQL дважды вставляет строку?

db.transaction(insertIDB, errorCB); 

    function insertIDB(tx) { 
    //do some task if else cases to get data 

    var sql = 'INSERT INTO data (date, location, ...) VALUES (?, ?, ...)'; 
    tx.executeSql(sql, [_date, _location, ...], successDB, errorDB); 

    } 

    function successDB(transaction, results) { 
    //navigate result page 
    } 

    function errorDB(transaction, results) { 
    //print error 
    } 

как-то он заканчивает вставляя те же данные дважды. У кого-то была эта проблема раньше. Я даже попробовал setTimeout перед тем, как перейти после успешной вставки. timestamps - это то же самое второе, может быть, только разность мсек. Любая идея исправить это будет оценена по достоинству.

+1

Если код вставляет строку дважды, то она вызывается дважды. Одна «вставка» (одной строки) не вставляет несколько строк, если у вас нет триггера, который делает что-то очень необычное. –

+0

нормально, я проверил код. У меня есть формы отправки и нажатия кнопок, возможно, это проблема, с которой они оба звонят, я нажимаю кнопку и добавляю дважды? – karma

+0

Нет, это выглядит. Я отключил этот код. Что еще может вызвать функцию дважды? – karma

ответ

0

Поместите некоторые записи в первую строку метода insertDB и проверьте, если он регистрирует сообщение дважды, в противном случае, если он регистрируется только один раз, тогда вы должны иметь другую инструкцию insert в другом месте.