Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript SQLite插入和删除查询出现错误,但不是SELECt查询_Javascript_Sqlite_Cordova_Web Sql - Fatal编程技术网

Javascript SQLite插入和删除查询出现错误,但不是SELECt查询

Javascript SQLite插入和删除查询出现错误,但不是SELECt查询,javascript,sqlite,cordova,web-sql,Javascript,Sqlite,Cordova,Web Sql,我正在使用SQLite(WebSQL)在Cordova移动应用程序中本地保存表单数据。 下面的代码适用于同一表的SELECTquery,但不适用于INSERT或DELETE查询。 它将错误输出为:无法准备语句 const usersDB = { add: function (firstname, lastname, dob, email, phone, city, state, country) { databaseHandler.db.readTransaction(

我正在使用SQLite(WebSQL)在Cordova移动应用程序中本地保存表单数据。
下面的代码适用于同一表的
SELECT
query,但不适用于INSERT或DELETE查询。

它将错误输出为:
无法准备语句

const usersDB = {
    add: function (firstname, lastname, dob, email, phone, city, state, country) {
        databaseHandler.db.readTransaction(
            function (tx) {
                tx.executeSql(
                    "INSERT INTO users(firstname, lastname, dob, email, phone, city, state, country) VALUES(?, ?, ?, ?, ?, ?, ?, ?)",
                    [firstname, lastname, dob, email, phone, city, state, country],
                    function (tx, results) {
                        console.log('User has been saved');
                    },
                    function (tx, error) {
                        console.log('ERROR: Failed to add user', error);
                    }
                );
            }
        );
    },
    selectAll: function (listUsers) {
        databaseHandler.db.readTransaction(
            function (tx) {
                tx.executeSql(
                    "SELECT * FROM users ORDER BY firstname",
                    [],
                    function (tx, results) {
                        listUsers(results);
                    },
                    function (tx, error) {
                        console.log('ERROR: Failed to list users', error);
                    }
                );
            }
        );
    }
}
我搜索了几十个讨论表单,但找不到关于此问题的解决方案。
我们将提前感谢您的帮助

只读事务用于只读。写事务允许读和写。读事务由SELECT语句启动,写事务由CREATE、DELETE、DROP、INSERT或UPDATE等语句启动(统称为“写语句”)

.readTransaction()
用于只读查询,
.transaction()
用于写查询。
因此,在我的情况下,我应该这样使用它们:

const usersDB = {
    add: function (firstname, lastname, dob, email, phone, city, state, country) {
        databaseHandler.db.transaction( // Write mode
            function (tx) {
                tx.executeSql(
                    "INSERT INTO users(firstname, lastname, dob, email, phone, city, state, country) VALUES(?, ?, ?, ?, ?, ?, ?, ?)",
                    [firstname, lastname, dob, email, phone, city, state, country],
                    function (tx, results) {
                        console.log('User has been saved');
                    },
                    function (tx, error) {
                        console.log('ERROR: Failed to add user', error);
                    }
                );
            }
        );
    },
    selectAll: function (listUsers) {
        databaseHandler.db.readTransaction( // read-only mode
            function (tx) {
                tx.executeSql(
                    "SELECT * FROM users ORDER BY firstname",
                    [],
                    function (tx, results) {
                        listUsers(results);
                    },
                    function (tx, error) {
                        console.log('ERROR: Failed to list users', error);
                    }
                );
            }
        );
    }
}