我有一个NSString变量,其中包含一些字符“和”。 那么,如何将它作为参数插入到Sqlite3中的表中呢? 感谢您的帮助:)
答案 0 :(得分:4)
答案 1 :(得分:2)
要避免格式化问题,请使用参数将字符串传递给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 :(得分:1)
您可以通过将\字符放在其前面来使用特殊字符初始化NSString 例如:
NSString *string = @"This is \" and this is \'";
答案 3 :(得分:0)
我会自动替换caracter:
NSString *stringFromExternalDatabase = @"Capital of Chad is N'Djamena";
[stringFromExternalDatabase stringByReplacingOccurrencesOfString:@"'" withString:@"\'"];
然后将stringFromExternalDatabase放在表中。
从数据库中检索stringFromExternalDatabase时,执行其他操作:
[stringFromExternalDatabase stringByReplacingOccurrencesOfString:@"\'" withString:@"'"];