我已经设置了一个SQLite DB,它当前可以NSString完美地读写.我还想将图像存储在数据库中,以后再调用它.我已经阅读了一些关于使用NSData和编码图像的内容,但我不完全确定我想要做什么的语法.任何代码片段或示例将不胜感激.
我当前的过程如下:
UIImagePickerController- >用户从照片中选择图像 - > selectedImage设置为UIImageView- > 现在我想拍摄此图像并将其存储在数据库中
我应该提到这个调用最终会被调用远程服务器取代.不确定这是否会对性能产生影响.
可能重复:
sqlite3在数据库中插入并读取BLOB数据
我尝试将BLOB数据读写到数据库.但是当我尝试读取blob数据时 - 它的大小为0.并且我的所有字段数据都移动了.这是代码:
请帮助我,我做错了什么?感谢名单!
-(int) addUser: (MyData *) user table: (NSString *) tableName
Run Code Online (Sandbox Code Playgroud)
{
sqlite3_stmt *updStmt =nil;
const char *sql = "INSERT INTO Users (Name, Surname, Email, Phone, Image) VALUES (?, ?, ?, ?, ?);";
int res = SQLITE_ERROR;
res = sqlite3_prepare_v2(database, sql, -1, &updStmt, NULL);
if(res!= SQLITE_OK)
{
NSLog(@"Error while creating update statement:%@", sqlite3_errmsg(database));
return res;
}
res = sqlite3_bind_text(updStmt, 1, [user.name UTF8String], -1, SQLITE_TRANSIENT);
res = sqlite3_bind_text(updStmt, 2, [user.surname UTF8String], -1, SQLITE_TRANSIENT);
res = sqlite3_bind_text(updStmt, 3, …Run Code Online (Sandbox Code Playgroud) 我在为我的iOS应用程序插入一个int到SQLite数据库时遇到问题.当我选择它时,它总是为零.
我正在创建这个表:
CREATE TABLE followedCategory(id TEXT(256) primary key, title TEXT(256), img BLOB, following INTEGER)
Run Code Online (Sandbox Code Playgroud)
最后一个param(following)导致了问题.我用这段代码插入记录:
DatabaseRecord *rec = [database query:@"INSERT INTO followedCategory VALUES (?1, ?2, ?3, ?4)" params:category.categoryId, category.title, UIImagePNGRepresentation(category.image), [NSNumber numberWithInt:1], nil];
[rec next];
Run Code Online (Sandbox Code Playgroud)
当我用这个查询表时:
DatabaseRecord *rec = [database query:@"SELECT COUNT(*) FROM followedCategory WHERE following = ?1" params:[NSNumber numberWithInt:1], nil];
[rec next];
return [rec intAtCol:0];
Run Code Online (Sandbox Code Playgroud)
我总是得到零结果.当我运行这个:
DatabaseRecord *recTest = [database query:@"SELECT following FROM followedCategory LIMIT 2"];
[recTest next];
NSLog(@"First following is %i", [recTest intAtCol:0]);
[recTest next];
NSLog(@"Second …Run Code Online (Sandbox Code Playgroud)