Go语言 如何从结果查询中删除由于参数绑定而导致的单引号?

vecaoik1  于 2023-11-14  发布在  Go
关注(0)|答案(1)|浏览(142)

我想在PostgreSQL中使用PSAM创建一个模式。我目前正在做的如下-

err = db.Exec("CREATE SCHEMA ?", *org.Name).Error;

字符集
以下是查询结果:

CREATE SCHEMA 'org1'


我得到错误
错误:语法错误位于或接近“$1”(SQLSTATE 42601)
但是,在PostgreSQL中创建模式的有效方法是

CREATE SCHEMA org1


CREATE SCHEMA "org1"


*org.Name是从用户那里获得的。我如何以上述任何一种方式创建查询,同时还能防止任何注入攻击?

blpfk2vs

blpfk2vs1#

遇到同样的问题,我用"github.com/lib/pq"提供的pq.QuoteIdentifier(*org.Name)解决了。
这是使用postgres驱动程序时的标准。然后您可以使用原始查询来执行查询。查看完整示例:

err = db.Exec("CREATE SCHEMA " + pq.QuoteIdentifier(*org.Name)).Error;

字符集

相关问题