我想用Korma执行以下原始SQL:
k/exec-raw
["INSERT INTO events ?, VALUES ? ON CONFLICT (id) DO UPDATE SET title = EXCLUDED.title;" [keys values]]其中params等于:
keys (str "(" (keys->str res) ")")
values (str "(" (serialize (merge res) ", ") ")" )这两种方法都会进行求值以纠正字符串,并在repl中工作。
但在运行时,我在psql控制台中有以下错误:
ERROR: syntax error at or near "$1" at character 20
STATEMENT: INSERT INTO events $1, VALUES $2 ON CONFLICT (id) DO UPDATE SET title = EXCLUDED.title找不到问题出在哪里。有没有人用Korma做过插入?
PostgreSQL 9.5 + Korma 0.4.2
发布于 2016-02-13 03:50:13
只有值可以用作预准备语句中的参数。因此,要使其工作:
INSERT INTO events (column) VALUES (?)如果您想像这样工作,就必须自己准备sql字符串,并确保没有sql注入。请参阅manual
https://stackoverflow.com/questions/35369963
复制相似问题