2
對於參數化postgresql查詢,我該如何返回行中的值或提供的參數。獲取參數的最大值或最小值到行值postgres
我有一個表有三列(我們將其稱爲foo
):id
,maximum
,minimum
我想選擇的行,這樣的最大值和最小值將有一個天花板或地板上,我提供他們。直接在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
子句。如何編寫查詢以便我能夠正確傳遞參數?
但是這意味着我失去了從SQL注入保護使用的參數。 – Schleis
用戶提供的值是否已修復? – localheinz
由用戶提供。我的問題是使用整數,但我也想更一般地瞭解。如果我需要使用字符串做類似的事情。我不能在我的例子中使用'intval'。 – Schleis