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
Cordova sqlite插件-无法读取属性“item”_Sqlite_Cordova_Ionic Framework - Fatal编程技术网

Cordova sqlite插件-无法读取属性“item”

Cordova sqlite插件-无法读取属性“item”,sqlite,cordova,ionic-framework,Sqlite,Cordova,Ionic Framework,我想通过ionic做一个简单的查询,我使用了sqlite插件,我尝试了几个语句插入、更新、删除,所有的工作都很好 但是我对select语句有一个问题 无法读取未定义的属性“item”无法读取未定义的属性“item” 注意:我之前创建了一个名为cars的表,其中包含两列type和year 这是完整的代码 //离子起动器应用程序 //angular.module是创建、注册和检索angular模块的全局位置 //“starter”是这个角度模块示例的名称,也是在index.html的属性中设置的

我想通过ionic做一个简单的查询,我使用了sqlite插件,我尝试了几个语句插入、更新、删除,所有的工作都很好

但是我对select语句有一个问题

无法读取未定义的属性“item”无法读取未定义的属性“item”

注意:我之前创建了一个名为cars的表,其中包含两列type和year

这是完整的代码

//离子起动器应用程序 //angular.module是创建、注册和检索angular模块的全局位置 //“starter”是这个角度模块示例的名称,也是在index.html的属性中设置的 //第二个参数是“requires”的数组 var app=角度。模块“启动器”[“离子型”]; app.runfunction$ionicPlatform{ $ionicPlatform.readyfunction{ 如果cordova.platformId==ios&&window.cordova&&window.cordova.plugins.Keyboard{ //默认情况下隐藏附件栏删除此选项以显示键盘上方的附件栏 //表格输入 cordova.plugins.Keyboard.hideKeyboardAccessoryBartrue; //除非您知道自己在做什么,否则不要删除此行。它会停止视口 //当文本输入被聚焦时,从捕捉。Ionic在内部为 //更好的键盘体验。 cordova.plugins.Keyboard.disableScrolltrue; } if window.StatusBar{ StatusBar.styleDefault; } //从表中选择 var-db=null; document.addEventListener'deviceready'函数{ //db=window.sqlitePlugin.openDatabase{name:'demo.db',location:'default'}; db=window.openDatabaselocalDB,1.0,Cordova Demo,200000; db.transactionfunction tx{ var query='SELECT*FROM cars'; tx.executeSqlquery,[],函数res { alertres.rows.item0.type; }; } }; }; }; -> 试试这个:

tx.executeSql(query, [], function (tx,res){
       alert(res.rows.item(0).type);
});

不客气!executeSql的第一个参数是一个对象,您可以在其上执行一些sqlite语句,正如您之前在一个步骤中所做的那样。第二个参数保存语句的实际结果。从tx对象调用executeSql时是这样,但从db对象调用executeSql时,第一个参数已经是查询的结果,如您所见。希望有帮助!注:请把我的答案标记为正确;PS:有很多db插件,不能保证executeSql在每个插件中的工作是否相似。上面的db插件与您使用的内置sqlite适配器非常相似。谢谢我得到了它,您能解释一下我使用的sqlite Pulling之间的区别吗,两个插件之间的主要区别在于可以传递的选项。虽然在应用程序中可以存储的数据量有物理限制,但在使用内置插件开始时,您不受特定存储量的限制,因为您必须传递一个数字作为最后一个参数,而您不能使用此参数定义特定存储量。此外,这个插件会打印出它所做的所有事务,因此在调试过程中更容易获得由于错误而导致应用程序停止的线索