使用非静态名称(FMDB)将数据插入数据库表

时间:2012-08-13 09:51:01

标签: iphone objective-c ios fmdb

我有一个在数据库中动态创建表的项目。而且我不知道在某个时刻使用了什么表。并希望这样的事情: [db executeQuery:@"INSERT INTO %@Table (image) VALUES (?)",tableName,imageData]; 但它没有用。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

您可以创建一个字符串,然后使用此字符串进行查询,如下所示:

NSString* queryStr = [NSString stringWithFormat:@"INSERT INTO %@(image) VALUES (?) ",tableName];
[db executeQuery:queryStr,imageData];

答案 1 :(得分:1)

请注意,如果要使用格式字符串,FMDB中还有另一个功能。您必须使用executeQueryWithFormat:代替executeQuery:

如果tableName是“员工”,则您的字符串将评估为:

"INSERT INTO EmployeesTable (image) values (<data>)"

这就是你想要的(即将字符串“Table”添加到表名中)?