iphone - 执行 FMDB 插入查询但未在数据库中插入数据

标签 iphone ios objective-c database sqlite

我是 SQLITE 数据库的新手,我正在使用 FMDB。在我的应用程序中,我想将一些数据插入数据库。我使用以下代码插入数据。

-(void)insertBookmark
{

    NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
    NSString *dbFilePath = [bundlePath stringByAppendingPathComponent:@"ISGData.sqlite"];
    FMDatabase *database = [FMDatabase databaseWithPath:dbFilePath];
    [database open];
    [database executeUpdate:@"INSERT INTO bookmark (pageno) VALUES (?);",page, nil];
    NSLog(@"%@",[database lastErrorMessage]);
    [database close];

}

这里的“书签”是我数据库中的表的名称,它有一个名为“pageno”的整数类型的实体。当我在查询中传递一个 int 值时,应用程序崩溃显示访问错误。如果我传递一个字符串值,在我的日志中我得到“不是错误”,但是这些值没有被插入到数据库中。我的代码有什么错误吗?

最佳答案

您正在尝试修改应用程序包内的数据库。 bundle 本身是只读的。为此,您必须首先将数据库文件复制到文档目录,然后打开并修改它。

简而言之,将函数中的前三行替换为:

FMDatabase *database = [self openDatabase];

openDatabase 定义如下:how do we open an already existing database fmdb and where to include it?

关于iphone - 执行 FMDB 插入查询但未在数据库中插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16141741/

相关文章:

ios - 在 iOS 上捕获/分割视频并通过 HLS 重新加入会导致音频丢失

ios - 想要以编程方式创建启动画面

ios - 我的应用程序一直拒绝访问联系人 iOS - Swift

iphone - Objective-C : Accessing constants from other classes

iphone - 我可以从 iphone 应用程序发出 POST 或 GET 请求吗?

iphone - 分发 iPhone 应用程序的开发版本

ios - 在我创建新方案后,xcode 4 无法启动单元测试(链接器错误)

ios - Metal - 优化内存访问

ios - 弹出窗口推送时改变 TintColor

objective-c - NSManagedObjectContext 困惑