我想从数据库中使用FMDB获取数据,但尝试过一段时间徒劳无功,我找不出为什么这会引发EXC_BAD_ACCESS异常。该参数是从NSInteger传入的,但我既不能记录也不能在SELECT语句中使用它。我的代码是:NSInteger和int给出例外
-(SQLiteResult*) getClient:(bool)forceRefresh id:(NSString*)id forYear:(NSInteger)year {
SQLiteResult *res;
if(!forceRefresh){
NSMutableArray *hereditaments = [[NSMutableArray alloc] init];
NSLog([NSString stringWithFormat:@"SELECT * FROM Clients WHERE ID = %@ AND Year = %@", id, [NSString stringWithFormat:@"%@", year]]); // exception
NSLog([NSString stringWithFormat:@"SELECT * FROM Clients WHERE ID = %@ AND Year = %@", id, year]]); // also exception
FMResultSet *rs = [db executeQuery:[NSString stringWithFormat: @"SELECT * FROM Clients WHERE ID = ? AND Year = %@", year], id]; // also exception
FMResultSet *rs = [db executeQuery:[NSString stringWithFormat: @"SELECT * FROM Clients WHERE ID = ? AND Year = ?", id, year]]; // also exception
我就只是把它当作一个字符串,而不是边缘。有没有一种安全的方法可以在SQL语句中使用这一年?
将其格式化为%d,而不是将其作为参数传递给查询。谢谢。 – Echilon