从同一页面:
2010 年 11 月 18 日,W3C 宣布 Web SQL 数据库是一个弃用的规范。这是对 Web 开发人员不再使用该技术的建议,因为该规范不会收到任何新的更新,并且不鼓励浏览器供应商支持该技术。
另请参阅http://www.w3.org/TR/webdatabase上的大警告
但要回答你的问题:据我所知:没有。不过,您可以编写一个“包装器”,用实际值替换您自己的占位符,但我认为这不值得打扰。
在黑暗中的另一个镜头将尝试:foo
用作占位符。AFAIK 大多数浏览器使用(d) SQLite 来实现他们的网络数据库,并且从我的头顶 上看,SQLite 支持-form多种形式的:parametername
命名参数。不知道您将如何实际提供值,尽管我想像[{'foo': 'bar'}, {'baz': 'bat'}]
编辑
我在您的示例中尝试了许多排列,如下所示:
var p = {};
p.aa = todoText;
p.bb = addedOn;
tx.executeSql("INSERT INTO todo(todo, added_on) VALUES (:aa, :bb)",
p,
...
});
或者:
tx.executeSql("INSERT INTO todo(todo, added_on) VALUES (:aa, :bb)",
{"aa": todoText, "bb": addedOn},
...
});
或者:
tx.executeSql("INSERT INTO todo(todo, added_on) VALUES (@aa, @bb)",
{"aa": todoText, "bb": addedOn},
...
});
或者:
tx.executeSql("INSERT INTO todo(todo, added_on) VALUES (?aa, ?bb)",
{"aa": todoText, "bb": addedOn},
...
});
...Chrome 25 中还有更多内容;它们似乎都没有表明支持命名参数。我能做的只是一个简单的n
th 位置值来映射到n
th 参数位置(或索引,如果你愿意的话)。
我并不是说绝对没有办法,也许我只是找不到它或猜不到正确的使用方法,但我认为你不走运。而且,再次如评论中所述,即使我或其他人让它工作我也不会依赖它(因为:未记录,以及无论如何都已弃用)并且它可能会在许多(大多数?)其他浏览器中失败. 老实说:试图让它发挥作用是在浪费你的时间。