当我遇到一个相当恼人的事情时,我正在写一个关于pg的包装器/验证器...传递很长的字符串作为参数。 基本上我有这个字符串:
"UPDATE " + m["table"] + "_tags SET keys = keys || ," + strconv.Itoa(key) + " WHERE tag = " + t + ";" + "INSERT INTO " m["table"] + "_tags (tag,keys) SELECT '" + t + "', '" + strconv.Itoa(key) + ") WHERE NOT EXISTS(SELECT 1 FROM " + m["table"]"_tags WHERE tag = " + t + ");"
好吧,大,不喜欢,充满'和'......地狱。 但这就是SQL查询的外观,坦率地说,我无法想到一种动态组合它们的更好方法。
所以在像C ++这样的合理语言中,这只会起作用。 在JavaScript中,我会在每个......等的末尾添加“\”
是否有这样的机制? 我之前听说在每一行的末尾添加“,”相当于\ javascript中的\但是这个文档似乎编写得很差,大多数在线示例都引用了以下内容:
“更改您的SQL查询”(可行,但不完全是我想要的低级语言解决方案)。 “在开始和结束时使用”......但是因为没有办法逃脱'内部'会有点困难(增加额外的6 * +操作符)而且我很不确定是否包装'工作时我里面有+连接。 建议?
(我能想到的最好的是在参数之外构造字符串,但再一次看起来像是hack-ish)
答案 0 :(得分:0)
创建模板:
y
然后传入参数。
P.S。这可能容易受到摄取攻击,在插入之前验证这些值。