我是 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/