首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FMDB update语句不使用我的值

问FMDB update语句不使用我的值
EN

Stack Overflow用户
提问于 2018-02-09 04:34:46
回答 1查看 534关注 0票数 0

你好,我正在尝试对我的数据库中的现有行执行更新。我一直在我的sql语句中使用问号?,并给FMDB一个值数组来替换?的值。以下是使用此逻辑的INSERT语句示例:

代码语言:javascript
复制
let sqlStatement = "INSERT INTO Cards (Column1, Column2, Column3) VALUES (?, ?, ?)"

try! db.executeUpdate(sqlStatement, values: Data)

现在我想对update语句执行此操作,我已经让该语句在SQLPro中工作,但我似乎不能让它在一行上工作。下面是我在swift /fmdb之外使用的SQL查询:

代码语言:javascript
复制
UPDATE MyTable 
SET ColumnId='5', Column2='Helloworld', Column3='data' 
WHERE ColumnId='5'

下面是我在swift中的声明:

代码语言:javascript
复制
let sqlStatement = "UPDATE Cards SET ColumnId='?', Column2='?', Column3='?'"

try! db.executeUpdate(sqlStatement, values: Data)

当我运行这条语句时,update通过,但数据库中的所有数据都被设置为?我不想将我的数据直接放入sql语句字符串中(正如文档告诉您的那样,避免sql注入之类的操作)。

如何修复此语句,以便更新应用程序上的sql数据库?

EN

回答 1

Stack Overflow用户

发布于 2018-02-09 04:42:15

Update语句如下:

代码语言:javascript
复制
-(void)updateValue:(Model *)data
    {
        [instance.database open];
        BOOL isUpdated=[instance.database executeUpdate:@"UPDATE Cards SET ColumnId =? , Column2 =? , Column3 =? WHERE ColumnId =?",data.ColumnId,data.Column2,data.Column3,data.ColumnId];
        [instance.database close];
    }

Swift版本:

代码语言:javascript
复制
func updateValue(_ data: Model) {
    instance.database.open()
    let isUpdated: Bool = instance.database.executeUpdate("UPDATE Cards SET ColumnId =? , Column2 =? , Column3 =? WHERE ColumnId =?", data.columnId, data.column2, data.column3, data.columnId)
    instance.database.close()
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48694335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档