FMDB - executeQuery Невозможно предоставить параметры
Код, который работает:
A) FMResultSet *r = [self.db executeQuery:@"SELECT COUNT(*) FROM myDB"];
Что я хочу работать:
B) r = [self.db executeQuery:@"SELECT COUNT(*) FROM ?",@"myDB"];
Ошибка при использовании B
:
DB Error: 1 "near "?": syntax error"
DB Query: SELECT COUNT(*) FROM ?
Как я могу получить B
работать?
1 ответ
Решение
Я не думаю, что вы можете передать имя таблицы в параметризованном запросе.
В качестве альтернативы вы можете сделать это следующим образом:
- (void)queryBuilder:(NSString *)tableName
{
NSString *result = [NSString stringWithFormat:@"SELECT COUNT(*) FROM %@",tableName];
return result;
}
И используйте это как:
r = [self.db executeQuery:[self queryBuilder:@"myDB"]];