【问题标题】:Get data from DB javascript从数据库 javascript 获取数据
【发布时间】:2014-10-03 11:11:40
【问题描述】:

我正在尝试从数据库中检索数据,准确地说是计数,我想从函数返回,但它一直返回“未定义”。我正在使用phonegap!

database.prototype.getNumberOfActions = function () {
    var numAct;
    var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000);
    db.transaction (function(tx){ 
            tx.executeSql('SELECT COUNT(*) AS conta FROM DB WHERE (((id >=' +idI + ') AND (anno >=' +annoI+')) OR (anno >'+ annoI+ '))) AND (fatto = true)',[], function(tx,results){numAct = results.rows.item(0).conta;},null); },null); return numAct;};`

【问题讨论】:

  • function(tx,results) 是一个异步回调。您不能从异步调用返回。 return numAct 将不起作用。查看 here 从异步调用返回/使用值。

标签: javascript jquery mysql sql cordova


【解决方案1】:

要做的事情清单:

  1. 确保您可以从数据库中获取任何内容
  2. 确保在运行当前 JavaScript 代码时不会出现错误。使用 Chrome,您可以按 F12 并按控制台。
  3. 使用 JSLint 检查所有代码是否有问题,不幸的是,您可以在没有所有代码的情况下检查问题(有人可以验证吗?)
  4. 我之前从未使用过 Phone Gap,您之前是否使用过它以确保它可以正常工作?

完成此操作后,您能否阐明解决方案?帮助人们前来。

【讨论】:

  • 嗨,这不是我执行的第一个查询,我已经使用过 javascript 查询并且它有效,但是对于其他查询,我直接修改了应用程序 GUI,所以我对异步查询没有任何问题.我做了你所说的一切,控制台没有显示任何问题,它已经像我之前说的那样工作了。我想要做的是返回查询的结果,但据我了解,返回是在查询之前执行的,所以变量设置为 undefined 并且不显示查询结果。
  • 是异步的吗?您是否尝试过使用“setTimeout()”让返回等待?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-07
  • 1970-01-01
  • 2019-05-10
  • 2018-07-19
  • 2013-05-16
  • 2013-08-29
相关资源
最近更新 更多