我的SQLite查询:
let data = db.getAllRows(sql"""
SELECT name, source, uploaded_at, canonical_url, size
FROM table
WHERE name like ?
ORDER BY ? DESC
LIMIT ?
OFFSET ?
""", &"%{query}%", order, limit, offset)
Nim会在任何替换?
的字符串中添加单引号。我可以手动构建SQL字符串,然后使用sql(string)
,但输入不会转义。除了?
之外,是否还有其他标记不添加'
?
1条答案
按热度按时间zy1mlcev1#
要回答标题问题:* “如何安全地将原始字符串添加到查询中”*,您可以使用dbQuote:
这将打印
my prefix ->'unes''caped %'' string'<- my suffix
,在前面/后面加上引号并转义其中的任何一个。这个字符串作为sql语句传递可能是安全的。你应该会得到与使用?
和额外参数相同的结果。