- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 examples 中看到当executeSql有多个参数时,我们使用问号:
db.transaction(function(tx){
var addedOn = new Date();
tx.executeSql("INSERT INTO todo(todo, added_on) VALUES (?,?)",
[todoText, addedOn],
html5rocks.webdb.onSuccess,
html5rocks.webdb.onError);
});
executeSql
可以带命名参数吗?
最佳答案
来自same page :
On November 18, 2010, the W3C announced that Web SQL database is a deprecated specification. This is a recommendation for web developers to no longer use the technology as effectively the spec will receive no new updates and browser vendors aren't encouraged to support this technology.
另请参阅 http://www.w3.org/TR/webdatabase 处的大警告
但要回答你的问题:据我所知:没有。虽然您可以编写一个“包装器”,用实际值替换您自己的占位符,但我认为这不值得费心。
另一个在黑暗中拍摄的是尝试使用 :foo
作为占位符。据我所知,大多数浏览器都使用(d)SQLite 作为他们的网络数据库实现,并且从我的头顶 having looked it up , SQLite 支持 几种形式的命名参数。不知道你实际上会如何提供值,尽管我想象像 :parametername
-form[{'foo': 'bar'}, {'baz': 'bat'}]
编辑
我在 your example 上尝试了很多排列像这样:
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
位置值映射到 n
参数位置(或者索引,如果你愿意的话)。
我并不是说绝对没有办法,也许我只是找不到它或猜不到正确的使用方法,但我认为你运气不好。并且,再次 as mentioned in the comments ,即使应该我或其他人让它工作我也不会依赖它(因为:undocumented,以及无论如何都已弃用)并且它可能会在许多(大多数?)其他方面失败浏览器。老实说:试图让它发挥作用是在浪费你的时间。
关于javascript - executeSql 可以带命名参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15644654/
代码如下: declare @tt varchar(20) set @tt = 'monisubbouns' declare @int int 
我不明白为什么下面的代码会这样工作:所有结果都进入 catch block 。 “select * from danceMoves”之后的最后一个 catch block 实际上会将“swag”写入控
我的 ExecuteSQL 任务中有多个更新语句。每个都依赖于一个变量,例如我的身份证 UPDATE TABLE_A SET COL_A={Something} WHERE ID=? UPDATE T
我在 examples 中看到当executeSql有多个参数时,我们使用问号: db.transaction(function(tx){ var addedOn = new Date(); tx.e
我正在尝试通过 Nifi 从 oracle 数据库中获取数据。在 Canvas 中,我将文件大小为 0 KB 的“GenerateFlowFile”处理器安排为每 5 分钟运行一次。这只是为了在成功时
我正在开发一个 cordova 应用程序,我需要在其中创建登录和注册。但是在运行该应用程序时我收到一个名为“错误处理 SQL:未定义”的错误。我知道我收到此错误是因为insertUSERREG 中的
我在 Nifi 中设置了一个工作流程,通过 ExecuteSQL 处理器从 DB2 读取数据并写入某处。当我运行一些包含 varchar 和特殊字符的 SQL 命令时,我在 ExecuteSQL 处理
我正在尝试使用 SQLite 返回 SQL 查询的结果。查询工作正常,我可以在 executeSql 函数中输出结果。但是当我尝试从我的主函数 (returnSQLArray) 访问数组时,它是未定义
我正在尝试将数组参数传递给 ionic 中 SQLiteObject 的函数 executeSql,以使其成为我的 sql 查询的值。 例如 var sqlQuery: string = "SELEC
我实际上尝试用 SQLite 制作一个移动应用程序。我只是尝试创建两个表: constructor(private sqlite:SQLite,public modalCtrl: ModalContr
嗨,我们正在混合移动应用程序上创建。我们正在尝试将数据保存到 SQLite使用 Ionic3 和 Angular4。所以我们将插件添加到我们的项目中,然后我们尝试这样: import { Compon
这是我的代码: 给定一个对象,我尝试在 webStorage 数据库中插入一些数据。问题是控制台返回给我一个“未定义不是函数”,我不知道为什么 这是我的代码片段 try { db = openDa
如何访问结果 tx.executeSql('select query for a table',[],sucessCB); function sucessCB(tx, results){ //<--
我只是想知道 FileMaker Pro 命令“ExecuteSQL()”是否支持 SQL 查询中的子查询? 这是我目前收到的查询: "SELECT Google_Calendar FROM SCH
如何让以下 JavaScript 返回 row 以便我可以在事务外访问它? Apple 的所有示例代码似乎都在事务中将 HTML 写入浏览器,而不是将数据传回调用函数。 沿着: function ge
我试图了解两个处理器之间的区别 ExecuteSQL和 ExecuteSQLRecord (V1.8 以上)。后面提供的有什么额外的东西吗?ExecuteSQL不是吗?我已经看到的一件事是 Execu
在 NiFi 流中,我想读取 JSON 结构,将其拆分,使用有效负载执行 SQL 查询,最后将每个结果输出到 JSON 文件中。 但是,我在检索 ExecuteSQL 中拆分的 FlowFile 的属
我创建了具有数据类型为 -dateTimeOffset 值的单列的表并插入了一些值。 create table dto (dto datetimeoffset(7)) insert into dto
我创建了具有数据类型为 -dateTimeOffset 值的单列的表并插入了一些值。 create table dto (dto datetimeoffset(7)) insert into dto
我正在尝试使用 jqm 应用程序的 web sql 数据库中的数据填充 html 标记。这是我的代码: $("#profile").on("pageinit", function () {
我是一名优秀的程序员,十分优秀!