我想从psql命令行运行以下参数化查询:
SELECT *
FROM users
WHERE username = :username;
如何在命令行上设置username参数?
我试过了:
\set username 'john'
但是当我运行查询时,我收到以下错误消息:
ERROR: column "john" does not exist
LINE 3: WHERE username = john;
^
答案 0 :(得分:3)
根据psql
文档,要将psql
变量替换为字符串作为文字,请使用:'variablename'
这通常不是通常意义上的参数化查询,因为变量被插入到查询字符串中。 psql
知道要逃避单引号,因此变量值');DROP TABLE users;--
将按字面意思显示,而不是结束字符串并运行不需要的SQL。