好的,所以我在這里有一個帶有 plsql if 語句的 pgsql 查詢:DO$do$BEGINIF $1 & (SELECT group_flags FROM technic WHERE id = $2 LIMIT 1) > 0 THEN UPDATE technic SET group_flags = group_flags - $1 WHERE id = $2;END IF;END$do$我正在使用 pg_prepare() PHP 函數準備它,然后執行它。問題是 pgsql 返回這個錯誤 -Warning: pg_execute(): Query failed: ERROR: bind message supplies 2 parameters, but prepared statement "query1990094225" requires 0但我在查詢中有兩個參數......為了確保語法沒有問題,我用整數替換了參數,一切都按預期工作。我不明白問題出在哪里。提前致謝!
1 回答

墨色風雨
TA貢獻1853條經驗 獲得超6個贊
您不能使用DO帶參數的語句,但幸運的是您不必:
UPDATE technic
SET group_flags = group_flags - $1
WHERE id = $2
AND (SELECT group_flags
FROM technic
WHERE id = $2
LIMIT 1
) > 0
- 1 回答
- 0 關注
- 143 瀏覽
添加回答
舉報
0/150
提交
取消