FMDB 出现DB Error: 1 "unrecognized token: 错误

对比下列两端代码, 看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 token: 错误)