FMDB/sqlite 查询函数问题

Posted

技术标签:

【中文标题】FMDB/sqlite 查询函数问题【英文标题】:FMDB / sqlite query problem with function 【发布时间】:2020-02-15 21:45:25 【问题描述】:

我对 swift 非常陌生,并试图了解 ios 编程。基本上我有一个表格,其中“id”和“fact”列。 id 是主键,这是我试图查询值的快速函数

func getItemsFromRow(fact_cid: String) ->[FactsData]
    var rowData: [FactsData]!
    let rawQ = "select * from facts where \(facts_id)=?"
    if (openDatabase())
        do
            let results = try database.executeQuery(rawQ, value(forKey: fact_cid))
            while results.next()
                let currentFact = FactsData(factid: results.string(forColumn: facts_id), factsdata: results.string(forColumn: facts_fld))
                if rowData == nil 
                    rowData = [FactsData]()
                
                rowData.append(currentFact)
            
        
    
    return rowData

但这行给了我错误

let results = try database.executeQuery(rawQ, value(forKey: fact_cid))

错误是

Cannot invoke 'executeQuery' with an argument list of type '(String, Any?)'

我正在尝试将 id 作为字符串传递。不知道我在这里做错了什么。

非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

改成

let results = try database.executeQuery(rawQ, values: [fact_cid])

因为第二个参数应该是一个数组

【讨论】:

对不起,现在我收到了这个错误。 'value' 的使用几乎与类 'NSObject' 中的类方法 'value(forKey:)' 匹配,而不是实例方法 'value(forKey:)' @Achayan 怎么样,我的回答中没有“价值”? 对不起,我认为这是我的错误,它正在工作,对此感到抱歉,感谢您的帮助

以上是关于FMDB/sqlite 查询函数问题的主要内容,如果未能解决你的问题,请参考以下文章

iOS之sqlite和FMDB

FMDB,sqlite json-string 成字典?

FMDB SQLite 没有出现在我的设备中

iOS超全开源框架项目和学习资料汇总数据库缓存处理图像浏览摄像照相视频音频篇

SQL Fundamentals: 子查询 || 分析函数

在查询条件下调用函数