美文网首页
FMDB 出现DB Error: 1 "unrecognized

FMDB 出现DB Error: 1 "unrecognized

作者: 通哥 | 来源:发表于2021-04-20 18:25 被阅读0次

    对比下列两端代码, 看name的区别, 由于无法写, 对比看下就可以解决

    报错的写法
    // 6. 删除数据
        func deleteOneData(name:String) {
            dbQueue?.inDatabase({ (db) in
                if db.open(){
                    let reslutSet = "DELETE FROM User where name = '\(name)'"
                    if db.executeUpdate(reslutSet, withArgumentsIn: []){
                        print("删除成功")
                    }else{
                        print("删除失败")
                    }
                }
            })
            dbQueue?.close()
        }
    
    正确解决写法
    // 6. 删除数据
        func deleteOneData(name:String) {
            dbQueue?.inDatabase({ (db) in
                if db.open(){
                    let reslutSet = "DELETE FROM User where name = \"\(name)\""
                    if db.executeUpdate(reslutSet, withArgumentsIn: []){
                        print("删除成功")
                    }else{
                        print("删除失败")
                    }
                }
            })
            dbQueue?.close()
        }
    

    原因: 在第一种错误写法中, 如果name中带 ' 符号的话(比如 I'm ),在删除校验时是只会截取 I' 这个字段, 所有无法找到对应的字段进行删除

    相关文章

      网友评论

          本文标题:FMDB 出现DB Error: 1 "unrecognized

          本文链接:https://www.haomeiwen.com/subject/rpnnlltx.html