Javascript 什么';从web数据库中删除记录的正确JS语法是什么?

Javascript 什么';从web数据库中删除记录的正确JS语法是什么?,javascript,web-sql,Javascript,Web Sql,我使用以下内容在HTML页面上使用innerHTML显示基于Javascript的webSQL数据(包含4个字段): var rowid = results.rows.item(i).id; document.getElementById("output2").innerHTML += "<table><tr><td><index type='button' class='buttonDel' onclick='delRecord(\"" + rowid

我使用以下内容在HTML页面上使用innerHTML显示基于Javascript的webSQL数据(包含4个字段):

var rowid = results.rows.item(i).id;
document.getElementById("output2").innerHTML += "<table><tr><td><index type='button' class='buttonDel' onclick='delRecord(\"" + rowid + "\")' value='Delete'>" + results.rows.item(i).id + "</td><td>" + results.rows.item(i).data1 + "</td><td>" + results.rows.item(i).data2 + "</td><td>" + results.rows.item(i).data3 + "</td></tr></table>";
删除记录的正确语法是什么

以下是按钮的格式化方式:

function querySuccess(tx, results) {
    var len = results.rows.length;
    console.log("Returned rows = " + results.rows.length);
for (var i = 0; i < len; i++) { 
var rowid = results.rows.item(i).id;
                document.getElementById("output2").innerHTML += 
    "<table><tr><td><index type='button' class='buttonDel' onclick='delRecord(\"" + 
    rowid + "\")' value='Delete'>" + 
        results.rows.item(i).id + 
        "</td><td>" + results.rows.item(i).data1 + 
        "</td><td>" + results.rows.item(i).data2 + 
        "</td><td>" + results.rows.item(i).data3 + "</td></tr></table>";
                }
函数查询成功(发送,结果){
var len=results.rows.length;
log(“返回的行=“+results.rows.length”);
对于(var i=0;i正确的语法是(底层实现都使用SQLite、AFAIK。)

然而,有几个相关的问题:

  • 使用的条件错误,SQL使用
    =
    表示相等

  • rowid
    作为字符串内容是错误的。该ID永远不会成为ID,因为没有进行“魔术替换”。相反,请使用参数化查询并指定绑定值

  • 考虑:

    function deleteRecord(rowid) {
        var db = getCurrentDatabase();
        db.transaction(
          function (tx) {
            tx.executeSql("DELETE FROM demo WHERE id = ?", [rowid]); 
          });
    }
    

    我还使用了一个闭包使
    rowid
    易于访问。请参考一些更一般的例子。

    我认为它应该是“=”而不是“=”不,记录仍然存在。这不是赋值运算符,不是相等的吗?我看到没有生成任何错误。@Steve:SQL的语法与编程语言不同;)@FelixKling WebSQL使用JavaScript,但是:)嗯,=也不起作用,所以有点不对劲。谢谢!我的问题是我习惯了PHP/MySQL,但一旦我在用JavaScript尝试webSQL,我觉得自己有点力不从心。我不确定语法中是否应该有回调或其他内容。使用您的示例,我得到了“未捕获引用错误:getCurrentDatabase未定义”。在研究此问题时,搜索“getCurrentDatabase”没有显示任何结果。我还尝试了:var db=db_NAME([数据库]);你给我指出了正确的方向。谢谢!问题解决了。@Steve只是一个打开/获取数据库的占位符函数:)
    function deleteRecord(rowid) {
        var db = getCurrentDatabase();
        db.transaction(
          function (tx) {
            tx.executeSql("DELETE FROM demo WHERE id = ?", [rowid]); 
          });
    }