FMDB - executeQuery无法提供参数

时间:2014-04-22 18:14:39

标签: ios fmdb

有效的代码:

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 个答案:

答案 0 :(得分:1)

我认为你不能在参数化查询中传递表名。

作为替代方案,您可以这样做:

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

并使用它:

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