我遇到了將blob插入sqlite數據庫的問題。我在ios上工作,所以它是objective-c。在sqlite數據庫中插入blob(objective-c)
計劃:
我我按下一個按鈕,照片選擇器打開,我選擇一張照片,即時接觸到另一個按鈕,照片保存在數據庫作爲一個blob。
一切工作正常只有插入不了。即時通訊allready int和字符串插入數據庫,它工作正常,但blob讓我發瘋。
守則即時通訊使用:
我得到了一類在那裏我得到了所有DB-方法吧。它叫db。我有一個類,即時通訊使用數據庫對象。
DB-類:
-(void)insertblob:(NSData *)blob stmt:(NSString *)blobStmnt {
const char *sql = [blobStmnt UTF8String];
sqlite3_prepare_v2(database, sql, 1, &statement, NULL);
if (SQLITE_DONE != sqlite3_step(statement)) {
NSLog(@"Error while inserting data. '%s'", sqlite3_errmsg(database));
}
sqlite3_bind_blob(statement, 1, [blob bytes], [blob length], SQLITE_TRANSIENT);
}
使用級:
[database openDB:@"Content"]
updateStmt = [NSString stringWithFormat:@"UPDATE Face SET image =%@", image];
[database insertblob:imageData stmt:updateStmt];
[database closeDB];
所以我在想什麼?我從我的更新語句中得到插入allready失敗的錯誤。但我真的不知道我必須改變。
在此先感謝您的幫助!
你應該像這樣改變updateStmt。 ** updateStmt = [NSString stringWithFormat:@「UPDATE Face SET image =?」]; ** –
將圖像插入到SQL中效率不高,應該避免使用。使用本地存儲來存儲圖像,並使用'SQL'來存儲對該路徑/圖像名稱的引用 –