让我们说我有一个列数组和一组这样的值:
let columns = ["a = ?","b = ?","c = ?"]
let values = ["one","two","three","entryId100"]
我的SQLite数据库中有一个表,其中的列名为" a"," b"和" c"。
如果我尝试这样做:
let columnsString = columns.joinWithSeparator(", ")
let sql = "UPDATE table SET \(columnsString) WHERE entryId = ?"
db.executeUpdate(sql, withArgumentsInArray:[values])
我收到the bind count (1) is not correct for the # of variables in the query (4)
。
但是,如果我打印我的sql
字符串,它看起来不错:
UPDATE table SET a = ?, b = ?, c = ? WHERE entry = ?
似乎无法识别我动态生成的column = ?
值。我有什么方法可以做到吗?
答案 0 :(得分:1)
它是db.executeUpdate(sql, withArgumentsInArray:values)
,而不是db.executeUpdate(sql, withArgumentsInArray:[values])
(不要将values
包装在数组中)