gpt4 book ai didi

javascript - pgsql查询: value with quote at first character

转载 作者:行者123 更新时间:2023-12-03 05:48:39 25 4
gpt4 key购买 nike

我需要在 js 中构建一个 postgreSQL 查询:

var value = "something";
var query = "INSERT INTO table VALUES ('" + value + "')";

由于变量“value”可以包含引号,因此我也通过修改原始代码将所有引号加倍:

var value = "something with quotes maybe";
var query = "INSERT INTO table VALUES ('" + value.replace("'", "''") + "')";

它在大多数情况下都可以正常工作,除非字符串值以引号开头。如果引号是值的第一个字符,如何解决“引号问题”?

最佳答案

转义引号字符还有更多内容,请参阅 SQL injection .

根据您使用的 Javascript/Postgres 库,可能有一些 SQL 字符串转义函数,您可以使用。

真正的解决方案是使用 prepared statements ,这完全消除了这个问题。

我不知道是否存在这样的 Javascript/Postgres 库。但如果有的话,你的语句就会变成这样(这主要是模仿 PHP 或 Java 等语言的样子)

var value = "something with quotes maybe";
var sql = "INSERT INTO table VALUES (?)";
var stmt = conn.prepare(sql);
stmt.execute(value);
<小时/>

查看 node-postgres并在 Parameterized queries and Prepared Statements ,这将是

var value = "something with quotes maybe";
var sql = "INSERT INTO table VALUES ($1)";
client.query(sql, [value]);

关于javascript - pgsql查询: value with quote at first character,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40241500/

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