我试图在应用程序 didFinishLaunchingWithOptions 的 AppDelegate 中的数据库中插入一些值,但是每次它都无法插入数据。
代码
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsPath = [paths objectAtIndex:0];
NSString *path = [docsPath stringByAppendingPathComponent:@"db.sqlite"];
FMDatabase *database = [FMDatabase databaseWithPath:path];
[database open];
FMResultSet *results = [database executeQuery:@"select * from settings"];
if(results == nil)
{
NSLog(@"Creating DB");
[database beginTransaction];
[database executeUpdate:@"create table settings(id int primary key, defaultaction text, beepsound text, vibrateeffect text, level text)"];
NSString *query = [NSString stringWithFormat:@"insert into settings(id,defaultaction,beepsound,vibrateeffect,level) values (%d, '%@', '%@','%@','%@',)",11,@"auto", @"YES", @"YES", @"HIGH"];
NSLog(@" %@",path);
BOOL y= [database executeUpdate:query];
if (!y)
{
NSLog(@"insert failed!!");
}
[database commit];
[database close];
}
最佳答案
我认为问题出在您的插入查询代码中
NSString *query = [NSString stringWithFormat:@"insert into settings(id,defaultaction,beepsound,vibrateeffect,level) values (%d, '%@', '%@','%@','%@',)",11,@"auto", @"YES", @"YES", @"HIGH"];
你又加了一个,最后在values()里最后检查去掉,肯定可以的
NSString *query = [NSString stringWithFormat:@"insert into settings(id,defaultaction,beepsound,vibrateeffect,level) values (%d, '%@', '%@','%@','%@')",11,@"auto", @"YES", @"YES", @"HIGH"];
试试这个查询
关于iphone - 使用 FMDB 插入表失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15000759/