我正在使用 pgx/v5 和 NamedArgs 来执行查询。我想在某些参数周围添加单引号。 pgx 只是用位置参数替换命名参数。
例如,
WHERE x = @Name
变为 WHERE x = $1
。如果我这样做WHERE x = '@Name'
,它就会变成WHERE x = '$1'
。 '$1'
最终被解释为字符串文字。我不想在我这边进行替代来防止 SQL 注入攻击。
另外,我也尝试过
SELECT ''' || $1 || ''';
quote_literal($1)
这是你想要的吗?我不确定,但如果是的话,试试这个。
SELECT quote_literal(E'$1');
quote_literal
---------------
'$1'