在Swift中动态更新具有FMDB的可变列数

时间:2016-09-21 18:32:47

标签: swift sqlite fmdb

让我们说我有一个列数组和一组这样的值:

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 = ?值。我有什么方法可以做到吗?

1 个答案:

答案 0 :(得分:1)

它是db.executeUpdate(sql, withArgumentsInArray:values),而不是db.executeUpdate(sql, withArgumentsInArray:[values])(不要将values包装在数组中)