0
我開始熟悉iOS上的SQLite。我試圖做簡單的用戶註冊,但年齡值(NSInteger)總是變成一些大的負數,如-1073752692。 這是我的註冊代碼:SQLite插入錯誤的值。 iOS Dev
- (User*) registerUser:(NSString *) firstname
lastname:(NSString *) lastname
age:(NSInteger) Age
email:(NSString *) email
password:(NSString *) password
picture:(NSString *) picture
{
User* user = nil;
NSString *sql = [NSString stringWithFormat:@"INSERT INTO User (firstname, lastname, age, email, password, picture) VALUES (\"%@\", \"%@\", \"%d\", \"%@\", \"%@\", \"%@\")", firstname, lastname, Age, email, password, picture];
sqlite3_stmt *insert;
int result = sqlite3_prepare_v2(self.db, [sql UTF8String], -1, &insert, NULL);
if (result == SQLITE_OK) {
sqlite3_step(insert);
user = [[User alloc]init];
user.firstname = firstname;
user.lastname = lastname;
user.age = Age;
user.password = password;
user.picture = picture;
NSLog(@"Successful registration!");
} else {
NSLog(@"Error: insert prepare statement failed: %s.", sqlite3_errmsg(self.db));
}
sqlite3_finalize(insert);
return user;
}
我想不出爲什麼會發生這種事。我曾經和Postgres一起工作過很多次,從來沒有遇到過這樣的問題。
謝謝。
爲什麼您的年齡變量大寫?看起來像一個類型。 – NCFUSN
嗨,謝謝,我把它寫成大寫(沒有明顯的理由:) – sermilion
請注意,你只是NSLogged你的'sql'值你會看到問題出在哪裏。 –