IOS插入数据库无效



请在下面找到我一直在尝试的内容。

-(BOOL)addItemsToTable:(NSString *)useTable WithColumnValues:(NSDictionary *) ValueObject{
    BOOL hasbeenAdded=NO;
    NSString *myColumns = @"";
    NSString *myValues = @"";
    for(int r=0; r<[self.columns count];r++){
        NSString *this_keyname = [self.columns objectAtIndex:r];
        myColumns = [myColumns stringByAppendingString:this_keyname];
        NSString *thisValue = [NSString stringWithFormat:@"'%@'", @"a"];
        myValues = [myValues stringByAppendingString:thisValue];
        if(r<(([[ValueObject allKeys]count])-1)){
            myColumns = [myColumns stringByAppendingString:@","];
            myValues = [myValues stringByAppendingString:@","];
        }
    }
    NSLog(@"%@-%@", myColumns, myValues);
    NSString *myInsert = [NSString stringWithFormat:@"INSERT INTO %@ (%@) VALUES (%@)",useTable, myColumns, myValues];
    char *err;
    if((sqlite3_exec(database, [myInsert UTF8String], NULL, NULL, &err))!=SQLITE_OK)
    {
        sqlite3_close(database);
        NSLog(@"Not added");
    }
    else{
        NSLog(@"Added");
        hasbeenAdded = YES;
    }
    return hasbeenAdded;
}

Mycolumns和myvalues作为数据库中的字段正确打印,但它总是输入if条件并打印而不添加。请帮帮我哪里出了问题!!

如上所述,您可以使用错误检查发生的确切错误

    if ( sqlite3_exec(DB, [insertStatement UTF8String], NULL, NULL, &error) == SQLITE_OK0
{
 }
else
{
    NSLog(@"Error : %s", error);
 }

如何在像"%@"一样使用单引号插入语句。

 NSString *myInsert = [NSString stringWithFormat:@"INSERT INTO %@ (%@) VALUES ('%@')",useTable, myColumns, myValues];

相关内容

最新更新