0
我有我的类此方法将数据插入表中,sqlite3_step(陈述)提供虚假每次
- (BOOL) registerData:(NSString*)name
email:(NSString *)email mobno:(NSString*)mobno username:(NSString *)username password:(NSString *)password imageUrl:(NSString*)imageUrl;
{
const char *dbpath = [databasePath UTF8String];
if (sqlite3_open(dbpath, &database) == SQLITE_OK)
{
NSString *insertSQL = [NSString stringWithFormat:@"insert into loginDetail (name, email, mobno, username, password, imageUrl) values (\"%@\",\"%@\", \"%@\", \"%@\", \"%@\", \"%@\")", name,email,mobno,username,password,imageUrl];
NSLog(@"image path %@", imageUrl);
const char *insert_stmt = [insertSQL UTF8String];
if (sqlite3_prepare_v2(database, insert_stmt, -1, &statement, NULL) == SQLITE_OK) {
if (sqlite3_step(statement) == SQLITE_DONE)
{
NSLog(@"SQLITE DONE %d", sqlite3_step(statement));
return YES;
}
else {
NSLog(@"SQLITE DONE %d", sqlite3_step(statement));
return NO;
}
sqlite3_reset(statement);
}
}
sqlite3_close(database);
return NO;
}
sqlite3_step(声明)返回false每次。
我打电话此方法,
- (IBAction)registerBtn:(UIButton *)sender {
NSLog(@"fileName path = %@", fileName);
wasClicked = YES;
BOOL success = NO;
if(wasClicked)
{
if((_errorMessageLabel.hidden)) {
NSLog(@"register button clicked");
NSString *alertString = @"Data Insertion failed";
if (name.text.length>0 && email.text.length>0 &&
mobileNo.text.length>0 && Useraname.text.length>0 && password.text.length>0 && fileName.length>0)
{
success = [[DatabaseConnection getSharedInstance]registerData:
name.text email:email.text mobno:
mobileNo.text username:Useraname.text password:password.text imageUrl:fileName];
NSLog(success? @"yes" : @"no");
if(success == YES)
{
_successLbl.text = @"Data Registered Successfully";
name.text = @"";
email.text [email protected]"";
mobileNo.text = @"";
Useraname.text [email protected]"";
password.text [email protected]"";
}
}
else{
alertString = @"Enter all fields";
}
if (success == NO) {
alertString = @"Data not registered, Duplicate Username Found!";
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:
alertString message:nil
delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
}
}
}
}
,但没有每次我得到的成功,我执行代码。
不知道为什么,但它发生后,我是在imageURL的数据库中添加新的字段。
我创建数据库查询,
const char *sql_stmt = "create table if not exists loginDetail (name text, email text, mobno text, username text primary key, password text, imageUrl text)";
请提出修改意见。
[sqlite3 \ _step(statement)== SQLITE \ _DONE的可能重复始终为false](http://stackoverflow.com/questions/16891190/sqlite3-stepstatement-sqlite-done-is-always-false) –
在这里粘贴你的insertSQL查询 – Sujit
它在代码中。 @Sujit – KAR