起作用的代码:

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工作?

最佳答案

我认为您无法在参数化查询中传递表名。

作为替代,您可以执行以下操作:

- (void)queryBuilder:(NSString *)tableName
{
   NSString *result = [NSString stringWithFormat:@"SELECT COUNT(*) FROM %@",tableName];
   return result;
}


并像这样使用它:

r = [self.db executeQuery:[self queryBuilder:@"myDB"]];

关于ios - FMDB-executeQuery无法提供参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23227216/

10-09 02:21