无法将带有撇号的字符串插入到sqlite ios中

时间:2015-07-09 05:38:32

标签: ios objective-c database sqlite

我正在尝试将字符串值(Okra(Lady' s Finger))插入sqlite.But字符串有撇号。它给出错误消息=接近" s":语法错误。我使用以下代码。

-(void)insertinto_DataBase :(NSString *)str 
{
 homeDomains = NSSearchPathForDirectoriesInDomains
 (NSDocumentDirectory,NSUserDomainMask, YES);
 documentsDirectory = [homeDomains objectAtIndex:0];
 _dataBasePath = [documentsDirectory 
 stringByAppendingPathComponent:@"Store.db"];
 const char *dbpath = [_dataBasePath UTF8String];
 NSString *insertSQL;
 if (sqlite3_open(dbpath, & _albumDB) == SQLITE_OK)
 {

    insertSQL = [NSString stringWithFormat: @"INSERT INTO Details 
   (str) VALUES ('%@')", str];

    char *errmsg=nil;
    if(sqlite3_exec(_albumDB, [insertSQL UTF8String], NULL, NULL, 
     &errmsg) == SQLITE_OK)
    {
    }
    else
    {
        NSLog(@"Error Message is =%s",errmsg);
    }
 }
 sqlite3_close(_albumDB);
 }

提前致谢。

1 个答案:

答案 0 :(得分:4)

不使用'kitty',而是使用'kitty''。 :)

在你的代码中, 添加这个

str = [str stringByReplacingOccurrencesOfString:@ "'" withString: @"''"];

insertSQL =....陈述

之前