我正在尝试使用 FMDB 从数据库中获取数据,但尝试了一段时间但徒劳无功,我无法弄清楚为什么这会引发 EXC_BAD_ACCESS 异常。该参数是从 NSInteger 传入的,但我既不能记录它,也不能在 SELECT 语句中使用它。我的代码是:
-(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 语句中使用年份?