对于参数化的postgresql查询,如何返回行中的值或提供的参数。
我有一个表格(我们称之为foo
),其中有三列:id
,maximum
,minimum
我想选择行,以便max和min具有我提供的天花板或地板。直接在postgresql中,我可以这样选择:
SELECT
id,
GREATEST(minimum, 5),
LEAST(maximum, 10)
FROM foo
因此,每行只返回5到10之间的值。
然而,将其转换为在我的PHP代码中使用时:
$floor = 5;
$ceiling = 10;
$query = 'SELECT id, GREATEST(minimum, $2), LEAST(maximum, $1) FROM foo';
$parameters = [ $ceiling, $floor];
$result = pg_query_params($query, $parameters);
这不起作用,因为参数需要位于查询的WHERE
子句中。如何编写查询以便我能够正确传递参数?
答案 0 :(得分:0)
你可以使用Heredoc:
$floor = 5;
$ceiling = 10;
$query = <<<SQL
SELECT
id,
GREATEST(minimum, $floor),
LEAST(maximum, $ceiling)
FROM
foo
SQL;
$result = pg_query_params($query);
供参考,见: