如何在cordova中传递sqlite事务中的参数
how to pass parameters in sqlite transaction in cordova
我有一个bookid,我需要在cordova中的sqlite事务中传递它像
var bookName=db.transaction(函数(tx){return tx.executeSql('SELECT*FROM Iqra_Book WHERE Book_id=?',[1],function(tx,res){var leng=res.rows.length;console.log("长度:"+长度);return bkName=res.rows.item(0).book_name;},函数(e){return console.log("ERROR:"+e.message);});});
但我得到这个booName是未定义的。有人能帮我吗?
您需要将一个变量传递给图书id。去掉"return",您不能只返回一个值,因为web数据库异步工作
tx.executeSql('SELECT * FROM Iqra_Book WHERE book_id ="'+id+'"',[1],function(tx,res){
另外,更改线路
return bkName = res.rows[0].book_name;
至
return bkName = results.rows.item[0].book_name;
并检查它是否工作
您应该使用executeSql()
方法的values
参数。
例如。
let id = //the ID of the item you are looking for
tx.execute('SELECT * FROM Iqra_Book WHERE book_id=?',[id])
.then(queryResult => {
console.log(queryResult.rows.item(0).book_name)
}).catch(err => console.error(`ERROR: ${JSON.stringify(err)}`);
注意
item()
是一个函数-你有权,它不能像前面的答案中所示的那样作为数组访问(我讨厌插件,但它就是这样)- 上一个例子中传递的值只是
1
,所以我希望您想要的ID是1 queryResult.rows
是一个类似列表的对象,我建议您执行一个限制为queryResult.rows.length
的for循环,除非(在这种情况下)您确信只会有1结果
相关文章:
- PHP:显示sqlite数据库中的html格式数据,使用tinymce保存
- 是否可以使用NativeScript使用Sqlite数据库
- 贝宝赢了't将沙箱事务数据发送到IPN
- Netsuite Suitelet:在不达到治理限制的情况下,遍历事务行项目的列表加载和提交记录
- SQLite插件适用于Mac和Windows,但不适用于手机上的Safari
- sqlite查询返回错误-can'我不知道为什么
- 使用Javascript将多条记录插入SQLite数据库时出错
- 我想做一个Web幻灯片事务处理
- 连接SQlite数据库
- 如何用javascript,phonegap(cordova)将json对象插入sqlite表中
- 以html形式显示sqlite数据库中的数据(phonegap)
- node.js脚本中出现Sqlite Sqlite_MISUSE错误
- "由于页面导航“,尚未完成的IndexedDB事务已中止”;
- 将数据插入android中的SQLite存储时出现异常
- 如何使用PhoneGap在Sqlite中存储当前日期和时间
- 如何在cordova中传递sqlite事务中的参数
- ng-cordova sqlite 插件:类型错误:无法读取 null 的属性“事务”
- iOS SQLite Phone Gap db事务不等待回调
- HTML5/js sqlite数据库不输入事务功能
- phonegap中嵌套的sqlite事务