我有一个 NSString 变量,其中包含一些字符“和”。那么,如何将它用作参数以插入 Sqlite3 中的表中?感谢您的帮助:)
问问题
6819 次
4 回答
4
于 2013-10-04T10:47:04.273 回答
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);
于 2013-10-04T11:58:46.270 回答
1
您可以通过将 \ 字符放在特殊字符之前来使用特殊字符初始化 NSString。
例如:
NSString *string = @"This is \" and this is \'";
于 2013-10-04T10:49:33.193 回答
0
我会自动替换字符:
NSString *stringFromExternalDatabase = @"Capital of Chad is N'Djamena";
[stringFromExternalDatabase stringByReplacingOccurrencesOfString:@"'" withString:@"\'"];
然后将 stringFromExternalDatabase 放在一个表中。
当您从数据库中检索 stringFromExternalDatabase 时,您执行其他操作:
[stringFromExternalDatabase stringByReplacingOccurrencesOfString:@"\'" withString:@"'"];
于 2014-01-30T10:16:40.133 回答