我过去常常在SQL查询中命名参数,因为实际的原因,比如在php中使用PDO。
那么我可以在node-postgres模块中使用命名参数吗?
现在,我看到许多例子和文档在互联网上显示这样的查询:
client.query("SELECT * FROM foo WHERE id = $1 AND color = $2", [22, 'blue']);
但这也是正确的吗?
client.query("SELECT * FROM foo WHERE id = :id AND color = :color", {id: 22, color: 'blue'});
或此
client.query("SELECT * FROM foo WHERE id = ? AND color = ?", [22, 'blue']);
我这样问是因为带编号的参数$n
在动态构建查询的情况下没有帮助。
4条答案
按热度按时间qojgxg4l1#
有一个library可用于您尝试执行的操作。操作方法如下:
envsm3lx2#
QueryConvert来拯救。它将接受一个参数化的sql字符串和一个对象,并将其转换为符合pg的查询配置。
用法如下:
cetgtptt3#
不完全是操作员要求的。但你也可以用途:
它将标记函数与模板文字结合使用来嵌入值
oyjwcjzk4#
我一直在使用nodejs和postgres。我通常执行这样的查询: