插入htmlstring到SQLite数据库使用目标c

我使用下面的代码片段插入到sqlite数据库的HTMLstring,我的代码工作正常,但是当我检索相同的HTMLstring,并在Web视图中显示它不呈现,一些数据正在修改,任何人都可以请帮助如何插入长的HTMLstring到数据库。

const char * sql =“insert into articles(art_id,sub_cat_id,art_title,art_details)Values(?,?,?,?)”;

if(sqlite3_prepare_v2(database, sql, -1, &addStmt, NULL) != SQLITE_OK) NSAssert1(0, @"Error while creating add statement. '%s'", sqlite3_errmsg(database)); sqlite3_bind_text(addStmt, 1, [[tuser objectForKey:@"art_id"] UTF8String], -1, SQLITE_TRANSIENT); sqlite3_bind_text(addStmt, 2, [[tuser objectForKey:@"sub_cat_id"] UTF8String], -1, SQLITE_TRANSIENT); sqlite3_bind_text(addStmt, 3, [[tuser objectForKey:@"art_title"] UTF8String], -1, SQLITE_TRANSIENT); sqlite3_bind_text(addStmt, 4, [[tuser objectForKey:@"art_details"] UTF8String], -1, SQLITE_TRANSIENT); if(SQLITE_DONE != sqlite3_step(addStmt)) NSAssert1(0, @"Error while inserting data. '%s'", sqlite3_errmsg(database)); else //SQLite provides a method to get the last primary key inserted by using sqlite3_last_insert_rowid //coffeeID = sqlite3_last_insert_rowid(database); //Reset the add statement. sqlite3_reset(addStmt); 

单引号可能导致这个问题。 由于它是HTML,所以你可以用一个' 或者你可以像这里显示的那样“加倍”单引号,这样sqlite就可以了:

  NSString *artdetails = [tuser objectForKey:@"art_details"]; NSString *arttitle = [tuser objectForKey:@"art_title"]; NSString *ad = [artdetails stringByReplacingOccurrencesOfString:@"'" withString:@"''"]; NSString *at = [arttitle stringByReplacingOccurrencesOfString:@"'" withString:@"''"]; 

  sqlite3_bind_text(addStmt, 3, [at UTF8String], -1, SQLITE_TRANSIENT); sqlite3_bind_text(addStmt, 4, [ad UTF8String], -1, SQLITE_TRANSIENT); 

等等