swift - 在 Swift 中使用 FMDB 动态更新可变列数

标签 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])

我得到一个错误,绑定(bind)计数 (1) 对于查询中变量的数量 (4) 不正确

但是如果我打印我的 sql 字符串,它看起来不错:

UPDATE table SET a = ?, b = ?, c = ? WHERE entry = ?

它似乎无法识别我动态生成的 column = ? 值。有什么办法可以做到吗?

最佳答案

db.executeUpdate(sql, withArgumentsInArray:values),不是db.executeUpdate(sql, withArgumentsInArray:[values])(不要包裹数组中的值)

关于swift - 在 Swift 中使用 FMDB 动态更新可变列数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39624076/

相关文章:

iPhone SQLite (FMDB) 查询花费过多时间

ios - FMDB 更新语句不使用我的值

swift - 避免在 swift 中将字符串视为可选

ios - TableView 中的搜索栏无法调用数组

sql - 主键可以包含数据库表中的空格吗?

python - 是否可以停止 sqlite 将双引号标识符视为字符串?

ios - 按位置识别 UIView 中的 subview (CGPoint)

json - 如何在 Swift 中将 JSON 转换为 XML?

c++ - 将 MySQL 表存储到文件(sqlite?)

iphone - FMDB SQLite 问题 : row count of a query?