在我的应用程序中,我需要保存用户本地以及联机,但是当我想将用户插入到本地数据库(sqlite3)时出现问题。插入sqlite3数据库
用户可以选择一个字符,也是一个用户名,这是通过一个方法放入我的dbhandler对象,如图所示。
-(BOOL) registerUser : (NSString *) username : (int) character {
sqlite3 *db;
if(sqlite3_open([dbpath UTF8String], &db) == SQLITE_OK)
{
NSString *formatetStmt = [NSString stringWithFormat:@"INSERT INTO user VALUES (null, '%@', %d, 0, 1, 5, 1, 1, 1, 1, 1 ,1)", username, character];
sqlite3_stmt *comstmt;
if(sqlite3_prepare_v2(db, [formatetStmt UTF8String], -1, &comstmt, NULL) == SQLITE_OK)
{
sqlite3_finalize(comstmt);
if(sqlite3_step(comstmt) == SQLITE_DONE) {
NSLog(@"SUCCESS");
sqlite3_finalize(comstmt);
return YES;
}
else {
NSLog(@"NO SUCCES");
return NO;
}
sqlite3_reset(comstmt);
}
}
NSAssert1(0, @"addMyObjectIntoDatabase: failed to prepare statement with err '%s'", sqlite3_errmsg(db));
NSLog(@"FAIL");
sqlite3_close(db);
return NO;
}
}
当我执行的代码,它说没有成功,但是我没有得到一个错误,并没有添加到数据库。
阿米在这里做错了什么?
你得到一个错误sqlite3_step'的'结果,但你忽略它,因为你只检查'SQLITE_DONE' – Joe
所以我把它添加到其他人,和现在出现错误='不是错误' 有什么建议吗? – MartinElvar