gpt4 book ai didi

node.js - Nodejs 的 Postgresql 查询问题

转载 作者:太空宇宙 更新时间:2023-11-03 22:40:12 24 4
gpt4 key购买 nike

我正在使用 node.js 制作一个应用程序,使用 express 框架,将 postgresql 作为我的数据库。

我必须将一些值插入我的数据库,其中一些值带有引号。例如托尼海鲜餐厅。我无法插入这样的值。

我试过了

name.replace('\'', '\\\'');

还有

name.replace("'", "\'");

但没有成功。

问题是 postgresql 服务器在运行查询之前对其进行格式化。如果查询在我的代码中如下所示,

insert into venues values (nextval('venue_venueid_seq'),'"+name+"','"+api+"','"+location+"','"+latitude+"','"+longitude+"','"+category+"','"+category_generalized+"')

然后 postgresql 像这样格式化它(我通过打印 client.query 对象找到它)

insert into venues values (nextval(\'venue_venueid_seq\'),\'Tony\'s Seafood Restaurant\',\'Google Places\',\'18863 California 1, Marshall\',\'38.146777\',\'-122.882987\',\'restaurant,food,establishment\',\'Eatery,Eatery,establishment\')

您会看到 postgresql 已经在字符串的开始和结束引号之前放置了斜杠,因此我以编程方式插入到字符串中间的转义斜杠不起作用。

如何插入这样的值?请帮忙。

最佳答案

您还可以使用 pg-escape 模块来处理这种情况。该模块还有一些其他有用的转义方法。

安装

npm 安装 pg-escape

示例

var sql = escape('INSERT INTO %I VALUES(%L)', 'books', "O'Reilly");

console.log(sql);

关于node.js - Nodejs 的 Postgresql 查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16856504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com