在 Swift 中使用 FMDB 动态更新可变列数
Dynamically UPDATE Variable Number of Columns with FMDB in Swift
假设我有一个列数组和一个值数组,如下所示:
let columns = ["a = ?","b = ?","c = ?"]
let values = ["one","two","three","entryId100"]
我的 SQLite 数据库中有一个 table,其中的列名为 "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 = ?
值。有什么办法可以做到吗?
是db.executeUpdate(sql, withArgumentsInArray:values)
,不是db.executeUpdate(sql, withArgumentsInArray:[values])
(不要用数组包裹values
)
假设我有一个列数组和一个值数组,如下所示:
let columns = ["a = ?","b = ?","c = ?"]
let values = ["one","two","three","entryId100"]
我的 SQLite 数据库中有一个 table,其中的列名为 "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 = ?
值。有什么办法可以做到吗?
是db.executeUpdate(sql, withArgumentsInArray:values)
,不是db.executeUpdate(sql, withArgumentsInArray:[values])
(不要用数组包裹values
)