iOS sqlite/FMDB 更新不起作用

Posted

技术标签:

【中文标题】iOS sqlite/FMDB 更新不起作用【英文标题】:iOS sqlite/FMDB update not working 【发布时间】:2013-05-11 17:01:51 【问题描述】:

这并不像我想的那样简单和具体,但我确实遇到了一些问题。 我遵循本教程,为 iPad 应用程序重新创建它非常相似: http://www.highoncoding.com/Articles/836_Persisting_ios_Application_Data_in_SQLite_Database_Using_FMDB.aspx

我遇到的问题是编辑客户和保存部分。我在 NSLog 中添加了我编辑的客户新名称,它通过所有功能推送,所以我认为它破坏了更新命令。

它也可能与 customerID 或情节提要中的一些我永远找不到的微小设置有关。

如果有人有任何想法,请告诉我。我也可以为任何人压缩我的代码。

【问题讨论】:

源代码在那个链接中给出,不是吗?你跟它比过吗?附上你的源代码,我去看看。 只能逐行数小时! 【参考方案1】:

问题在于您的更新查询,您的每列值没有用逗号分隔。

-(BOOL) updateClient:(Client *) client

    FMDatabase *db = [FMDatabase databaseWithPath:[Utility getDatabasePath]];

    [db open];

    BOOL success = [db executeUpdate:[NSString stringWithFormat:@"UPDATE clients SET name = '%@', phone = '%@', address = '%@', email = '%@', notes = '%@' WHERE id = %d", client.Name, client.Phone, client.Address, client.Email, client.Notes, client.clientId]];

    [db close];
    return success;

【讨论】:

啊,谢谢!!总是这样。感谢您查看! @HenryDavid 对于这类错误,您总是需要第三方。编码愉快。 阅读github.com/ccgus/fmdb 上有关数据清理的文档。通过输入 SQL sn-ps 作为值,可以很容易地破解此示例中的代码。 @JohanKool 感谢您的信息。抱歉,我不知道黑客的可能性,我只是调试了 OP 的错误。如果你不介意你能在这里详细说明这个问题吗?

以上是关于iOS sqlite/FMDB 更新不起作用的主要内容,如果未能解决你的问题,请参考以下文章

多维动态数组,为啥不起作用?

iOS >> prepareForSegue >> IBOutlet 更新不起作用?

iOS - 解析当前用户获取不起作用

UITableViewCell 样式字幕多行不起作用

Hibernate HQL Count Distinct 不起作用?

SQLite FMDB 创建表 - 初学者 iOS