iOS:如何在sqlite中插入特殊的“或”字符

时间:2013-10-04 10:45:49

标签: ios sqlite

我有一个NSString变量,其中包含一些字符“和”。 那么,如何将它作为参数插入到Sqlite3中的表中呢? 感谢您的帮助:)

4 个答案:

答案 0 :(得分:4)

以2引号退出报价。 Doublequote无需替换

''

SQLFiddle demo

答案 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:@"'"];