【问题标题】:javascript - simple way to display SQL single column value for input valuejavascript - 为输入值显示 SQL 单列值的简单方法
【发布时间】:2015-01-26 18:11:48
【问题描述】:

我是一名新的 Cordova-Android 程序开发者。我已成功创建并插入本地数据库字段。但是当我想将它们显示到 input 标记时,我卡住了。

这是我的桌子:

+----+------+---------+
| id | word | stats   |
+----+------+---------+
| 1  | abc  | stackov |
| 2  | def  | erflow  |
+----+------+---------+

我试试这个代码

    $(document).ready(function(){
        docDB = window.openDatabase("Test", "1.0", "Test Data", 50000);

        docDB.transaction(function (tx) {
            tx.executeSql("SELECT * FROM Test WHERE word='abc'", [], function (tx, results) {
                var dblen = results.rows.length;
                if( dblen>0 ){
                    document.getElementById("abc").value = results.rows.item(0)['stats'];
                    }
            }, null);
        });
   });

我正在寻找最简单的方法,因为我只想显示单个 SQL 列值 word='abc' 和其他 word 值,例如 word='def'。有人可以纠正吗?

我会将结果值插入到input 字段中

Name : <input type="text" id="abc">

感谢您的回答:)

【问题讨论】:

  • 您在收听 deviceready 事件吗?数据库中有一些数据吗?
  • 是的,我确实声明了 deviceready。是的,数据库和数据是存在的

标签: javascript android mysql cordova


【解决方案1】:

尝试在 SQL 语句之外添加您的搜索值,并将 item 作为对象引用,如下所示:

$(document).ready(function(){
    docDB = window.openDatabase("Test", "1.0", "Test Data", 50000);

    docDB.transaction(function (tx) {
        tx.executeSql("SELECT * FROM Test WHERE word=?", ['abc'], function (tx, results) {
            var dblen = results.rows.length;
            if( dblen>0 ){
                document.getElementById("abc").value = results.rows.item(0).stats;
                }
        }, null);
    });
});

从实际 SQL 语句中删除搜索参数有几个不同的好处。一种是,通过传入变量,它们被正确转义,以免破坏语句。另一个是,它使调试代码时语句更清晰。

对于那些可能不熟悉语法的人,您可以添加?,您将在其中放置变量输入或搜索参数,然后在语句[] 从数组中删除项目后添加到数组中并添加到SQL 语句。

例子:

..."SELECT * FROM thisTable WHERE id IN(?) AND name LIKE ? and gender=?", ['1,32,456', '%tim%', 'M']

生成:

"SELECT * FROM thisTable WHERE id IN('1,32,456') AND name LIKE '%tim%' and gender='M'"

【讨论】:

  • 嗨,道森,非常感谢。我不明白这个[ ]之前的意思
【解决方案2】:

你需要在你的sql代码中再次确认评估

【讨论】:

    猜你喜欢
    • 2020-07-08
    • 2017-03-05
    • 2010-12-02
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-08
    相关资源
    最近更新 更多