我需要運行一個查詢,看起來會是什麼樣子FMDB查詢與詞典
INSERT INTO Appointments (field1, field2, field3, ..., field30) VALUES (value1, value2, value3, ..., value30)
我已經被存儲在一個字典裏我的任命,並希望通過該字典使鑰匙圈等於字段和值等於這些值。
我試圖使用executeUpdate:... withParameterDictionary:...
但無法弄清楚如何使多個領域的工作,如果我不知道的字段名。字段名稱正在通過JSON發送,而不是手工輸入了30場我只是想通過字典環,並得到他們的方式。
我甚至試過
NSMutableArray *keys = nil;
NSMutableArray *values = nil;
for (NSDictionary *dict in [json objectForKey:@"data"]) {
keys = [NSMutableArray array];
values = [NSMutableArray array];
for (id key in dict) {
[keys addObject:key];
[values addObject:[NSString stringWithFormat:@":%@", key]];
}
NSString *keyString = [keys componentsJoinedByString:@","];
NSString *valueString = [values componentsJoinedByString:@","];
[[dataObj db] executeUpdate:@"DELETE FROM Appointments"];
NSLog(@"INSERT INTO Appointments (%@) VALUES (%@)", keyString, valueString);
[[dataObj db] executeUpdate:@"INSERT INTO Appointments (?) VALUES (?)", keyString, valueString];
}
上面的代碼打印的NSLog如何查詢應長相,但沒有被插入到數據庫中。我知道這是因爲我在查詢運行後打開模擬器數據庫文件,它仍然是空白的。
我怎樣才能得到上面的代碼工作或我如何能得到executeQuery:... withParameterDictionary:...
與多個名稱的工作。
你是對的,我昨天做了這個,並得到它的工作,但忘了發佈。我會測試你發佈的字典內容。 – Bot 2012-02-23 19:06:51
這太好了。唯一的缺點是你跳過FMDB中的所有內置轉義。這可能會被注入取決於你如何獲得所有參數。 – Julian 2012-08-09 06:20:05
我碰到了類似的問題,無法弄清楚如何使用的executeQuery withParameterDictionary和自動遞增的關鍵。 這裏介紹的方法將工作,但繞過內置逃脫,這是一個令人失望:( – selytch 2013-02-23 10:00:38