我正在尝试将字符串值(Okra(Lady's Finger))插入sqlite.But字符串中有撇号。它给出的错误消息是= near“ 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);
 }


提前致谢。

最佳答案

不要使用“小猫”,而要使用“小猫”。 :)

在您的代码中
加上这个

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


insertSQL =....语句之前

10-06 12:24