Guys I have an issue with my snippet. I must also say I'm a newbie. I'm trying to insert data in to sqlite. but I keeps failing as sqlite_step == sqlite_done returns false all the time. Am I doing something wrong here. I had done something similar before and it was working fine. following is the code
sqlite3_stmt *statement;
const char *dbpath = [_databasePath UTF8String];
if(sqlite3_open(dbpath, &_db) == SQLITE_OK){
NSString *insertSQL = [NSString stringWithFormat:@"INSERT INTO userInfo (name, email, username, password) VALUES (\"%@\",\"%@\",\"%@\",\"%@\")", self.txtName.text, self.txtEmail.text, self.txtUsername.text, self.txtPassword.text];
if([self validateRegistration])
{
const char *insert_statement = [insertSQL UTF8String];
sqlite3_prepare_v2(_db, insert_statement, -1, &statement, NULL);
if(sqlite3_step(statement) == SQLITE_DONE){
[self showUIAlertWithMessage:@"User added to the database" andTitle:@"Message"];
self.txtName.text = @"";
self.txtEmail.text = @"";
self.txtUsername.text = @"";
self.txtPassword.text = @"";
self.txtConfirmPassword.text = @"";
}else{
[self showUIAlertWithMessage:@"Failed to add the user" andTitle:@"Error"];
}
sqlite3_finalize(statement);
sqlite3_close(_db);
}
}
I had this issue because I haven't updated my create table statement according to my insert statements as I had made some changed some values that I am inserting.