statement.setAllowBareNamedParameters(enabled)


  • enabled <boolean> 启用或禁用对绑定命名参数(无需前缀字符)的支持。

SQLite 参数的名称以前缀字符开头。默认情况下,node:sqlite 要求在绑定参数时必须出现该前缀字符。然而,除了美元符号字符之外,当这些前缀字符用作对象键时,还需要额外的引号。

【The names of SQLite parameters begin with a prefix character. By default, node:sqlite requires that this prefix character is present when binding parameters. However, with the exception of dollar sign character, these prefix characters also require extra quoting when used in object keys.】

为了改善人机工程学,这种方法还可以用于允许裸命名参数,这些参数在 JavaScript 代码中不需要前缀字符。在启用裸命名参数时,需要注意几个事项:

【To improve ergonomics, this method can be used to also allow bare named parameters, which do not require the prefix character in JavaScript code. There are several caveats to be aware of when enabling bare named parameters:】

  • 在 SQL 中仍然需要前缀字符。
  • 在 JavaScript 中仍然允许使用前缀字符。事实上,带前缀的名称绑定性能会略好一些。
  • 在同一准备语句中使用模糊命名参数,如 $k@k,将导致异常,因为无法确定如何绑定一个裸名称。