我正在尝试将字符串值(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);
}
提前致谢。
答案 0 :(得分:4)
不使用'kitty',而是使用'kitty''。 :)
在你的代码中, 添加这个
str = [str stringByReplacingOccurrencesOfString:@ "'" withString: @"''"];
在insertSQL =....
陈述