如何从 PostgreSQL 命令行 运行 参数化查询
How to run a parameterized query from the PostgreSQL command line
我想从 psql 命令行 运行 以下参数化查询:
SELECT *
FROM users
WHERE username = :username;
如何在命令行设置用户名参数?
我试过这个:
\set username 'john'
但是当我 运行 查询时,我收到以下错误消息:
ERROR: column "john" does not exist
LINE 3: WHERE username = john;
^
根据 psql
文档,要将 psql
变量作为文字替换为字符串,请使用 :'variablename'
这并不是通常意义上的参数化查询,因为变量被插入到查询字符串中。但是,psql
知道要转义单引号,因此变量值 ');DROP TABLE users;--
将按字面意义出现而不是结束字符串,并且 运行 不需要 SQL.
我想从 psql 命令行 运行 以下参数化查询:
SELECT *
FROM users
WHERE username = :username;
如何在命令行设置用户名参数?
我试过这个:
\set username 'john'
但是当我 运行 查询时,我收到以下错误消息:
ERROR: column "john" does not exist
LINE 3: WHERE username = john;
^
根据 psql
文档,要将 psql
变量作为文字替换为字符串,请使用 :'variablename'
这并不是通常意义上的参数化查询,因为变量被插入到查询字符串中。但是,psql
知道要转义单引号,因此变量值 ');DROP TABLE users;--
将按字面意义出现而不是结束字符串,并且 运行 不需要 SQL.