如何使用通用函数将数据插入到sqlite数据库中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用通用函数将数据插入到sqlite数据库中相关的知识,希望对你有一定的参考价值。
我正在编码的函数将从其他javascript文件中调用,字段和值将传递给包含表名的函数。但是当我运行该函数时,它只是在没有此错误消息的情况下给出错
We have encounter an Error WebSQLTransaction { "_complete": false, "_error": null, "_running": true, "_runningTimeout": false, "_sqlQueue": Queue { "first": undefined, "last": undefined, "length": 0, }, "_websqlDatabase": WebSQLDatabase { "_currentTask": TransactionTask { "errorCallback": [Function anonymous], "readOnly": false, "successCallback": [Function anonymous], "txnCallback": [Function anonymous], }, "_db": SQLiteDatabase { "_closed": false, "_name": "mydb.db", }, "_running": true, "_txnQueue": Queue { "first": Object { "item": TransactionTask { "errorCallback": [Function anonymous], "readOnly": false, "successCallback": [Function anonymous], "txnCallback": [Function anonymous], }, "next": Object { "item": TransactionTask { "errorCallback": [Function anonymous], "readOnly": false, "successCallback": [Function anonymous], "txnCallback": [Function anonymous], }, "next": Object { "item": TransactionTask { "errorCallback": [Function anonymous], "readOnly": false, "successCallback": [Function anonymous], "txnCallback": [Function anonymous], }, }, }, }, "last": Object { "item": TransactionTask { "errorCallback": [Function anonymous], "readOnly": false, "successCallback": [Function anonymous], "txnCallback": [Function anonymous], }, }, "length": 3, }, "version": "1.0", }, }
所以我正在使用javascript React native构建这个并使用expo SDK。世博会在SQLite模块中发布,我们正在做的是构建一个可以从代码中的任何地方调用的函数,并将一些数据调入数据库。
export const insert = (tbl, fields, values) =>{
const query = "insert into ${tbl} (${fields}) values (${values});";
console.log(query);
//it looks fine to me
db.transaction(trx => {
let trxQuery = trx.executeSql(
query
,[values],(data)=> console.log('we made it',data),(err)=>console.log('We have encounter an Error', err))
console.log(trxQuery); // retruns undefined
})
}
这就是我调用函数的方式
const personObj = JSON.parse(personDetails);
Object.keys(personObj).map(i =>
insert('users','name, address, hash', [personObj[i].name, personObj[i].address, personObj[i].hash])
)
我希望得到we made it
的控制台日志和有关我们插入的数据的信息。谢谢你的协助
答案
成功和错误回调有2个参数,第一个是事务本身,第二个是错误或结果集。您应该像下面那样编辑代码并检查结果集对象,
`export const insert = (tbl, fields, values) =>{
const query = "insert into ${tbl} (${fields}) values (${values});";
console.log(query);
//it looks fine to me
db.transaction(trx => {
let trxQuery = trx.executeSql(
query
,[values]
,(transact,resultset) => console.log('we made it',resultset)
,(transact,err) => console.log('We have encounter an Error', err)
);
})
}`
以上是关于如何使用通用函数将数据插入到sqlite数据库中的主要内容,如果未能解决你的问题,请参考以下文章
如何将时间戳插入 SQLite 数据库列?使用函数时间('现在')?
如何使用 android 中的 SQLite 扩展类在数据库中插入值?
Java SQLite 数据库,插入条目给出 nullPointerException
从 JSONArray 插入/更新 +10000 行到 SqLite 时如何防止应用程序崩溃
如何通过单击按钮将 Listview 中的数据传递到购物车列表(新活动)。我插入到 listview 的数据正在使用 SQLite