iOS:如何在sqlite中插入特殊的“或”字符
我有一个NSString变量,其中包含一些字符“和”。那么,我怎样才能将它作为参数插入到Sqlite3中的表中?感谢您的帮助:)
要避免格式化问题,请使用参数将字符串传递给SQL语句:
NSString *str = @"some characters \" and \'"; const char *sql = "INSERT INTO MyTable(Name) VALUES(?)"; sqlite3_stmt *stmt; if (sqlite3_prepare_v2(db, sql, -1, &stmt, NULL) == SQLITE_OK) { sqlite3_bind_text(stmt, 1, [str UTF8String], -1, SQLITE_TRANSIENT); if (sqlite3_step(stmt) != SQLITE_DONE) { NSLog(@"SQL execution failed: %s", sqlite3_errmsg(db)); } } else { NSLog(@"SQL prepare failed: %s", sqlite3_errmsg(db)); } sqlite3_finalize(stmt);
用2个引号来逃避报价。 Doublequote不需要替换
''
SQLFiddle演示
您可以通过在其前面放置\字符来使用特殊字符初始化NSString。
例如:
NSString *string = @"This is \" and this is \'";
我会自动替换caracter:
NSString *stringFromExternalDatabase = @"Capital of Chad is N'Djamena"; [stringFromExternalDatabase stringByReplacingOccurrencesOfString:@"'" withString:@"\'"];
然后将stringFromExternalDatabase放在表中。
从数据库中检索stringFromExternalDatabase时,执行其他操作:
[stringFromExternalDatabase stringByReplacingOccurrencesOfString:@"\'" withString:@"'"];
- 如何合并两个UIImage?
- 自动引用计数(ARC)(速记3)
- NSFetchedResultsController加上NSBatchUpdateRequest等于NSMergeConflict。 我做错了什么?
- Firebase:FIRApp.configure()一直希望我将其更改为FirebaseApp.configure()
- 为什么我的audioAVCaptureConnection不能用于最高分辨率格式?
- UItableView用UIButton代替复选标记
- iOS 7自定义转换故障
- 是否可以使用标准控制器UIImagePickerController的强制触摸(3D Touch)?
- 播放完成后更改button图像