请在下面找到我一直在尝试的内容。
-(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];