我希望将iOS NSData
的数据保存到FMDB
的数据库中,例如:
NSURL *url=[NSURLURLWithString:@"http://pic17.nipic.com/20111023/7050178_121536234000_2.jpg"];
NSData *date=[NSData dataWithContentsOfURL:url];
NSString *img=[NSString stringWithFormat:@"insert into name(picture) values('%@')",date ];
BOOL judge1=[self.database executeUpdate:img];
但它不起作用。
答案 0 :(得分:1)
试试这个,
NSLog(@"\nCreating db");
NSString *str = @"CREATE TABLE IF NOT EXISTS Images (image1 BLOB);";
int res = SQLITE_ERROR;
res = sqlite3_open([@"aa.sql" UTF8String], &database);
res = sqlite3_exec(database, [str UTF8String], NULL, NULL, NULL);
sqlite3_stmt *updStmt =nil;
const char *sql = "INSERT INTO Images (image1) VALUES (?);";
res = sqlite3_prepare_v2(database, sql, -1, &updStmt, NULL);
if(res!= SQLITE_OK)
{
NSLog(@"Error while creating update statement:%s", sqlite3_errmsg(database));
}
UIImage *img = [UIImage imageNamed: @"flower.png"];
NSData *imageData = [NSData dataWithData: UIImagePNGRepresentation(img)];
res = sqlite3_bind_blob(updStmt, 1, [imageData bytes], [imageData length] , SQLITE_TRANSIENT);
if((res = sqlite3_step(updStmt)) != SQLITE_DONE)
{
NSLog(@"Error while updating: %@", sqlite3_errmsg(database));
sqlite3_reset(updStmt);
}
res = sqlite3_reset(updStmt);
res = sqlite3_close(database);
答案 1 :(得分:0)
确保您执行了所有这些步骤。
FMDatabase *databse = [FMDatabase databaseWithPath:@"Path"];
[database open];
NSURL *url=[NSURLURLWithString:@"http://pic17.nipic.com/20111023/7050178_121536234000_2.jpg"];
NSData *date=[NSData dataWithContentsOfURL:url];
NSString *img=[NSString stringWithFormat:@"INSERT INTO name (picture) values('%@')",date ];
BOOL judge1;
judge1=[database executeUpdate:img];