在Golang中使用SQLite进行参数化查询

时间:2016-07-20 22:14:44

标签: sqlite go

我正在尝试对sqlite数据库运行查询。这种格式似乎有效:

stmt, _ = DBHandle.Prepare("SELECT * FROM Purchases WHERE Product LIKE ?")
defer stmt.Close()

rows, _ = stmt.Query(fmt.Sprintf("%" + mapSearchValues["Product"] + "%")
rows.Close()

for rows.Next() {...

当地图中有值时返回结果。如果我尝试像

这样的变体
stmt, _ = DBHandle.Prepare("SELECT * FROM Purchases WHERE ? LIKE ?")
defer stmt.Close()

rows, _ = stmt.Query("Product", "%" + mapSearchValues["Product"] + "%")
rows.Close()

for rows.Next() {...

我得到0结果。

我已尝试使用stmt.Query的不同变体来将多个参数放入预准备语句中,但它似乎并不喜欢它们中的任何一个。

(我想要得到的最终结果是获取字符串映射并使用这些值运行查询;函数不知道必须检查哪些列(产品?产品和购买者?价格?)所以我希望从地图构建一个查询然后运行查询,迭代值来插入先前通过键重构并构造字符串构建的查询中的值。因为我没有太多的Sqlite和Go经验,我可能会接近这个错误,但认为使用参数化的准备和查询可能会有效。)

0 个答案:

没有答案