用单引号替换双引号以存储在 SQLite 中
Posted
技术标签:
【中文标题】用单引号替换双引号以存储在 SQLite 中【英文标题】:Replacing double quote with single quote to store in SQLite 【发布时间】:2012-09-12 09:10:17 【问题描述】:我想用单引号替换字符串中的所有双引号。我尝试过使用stringByReplacingOccurrencesOfString
,但它不起作用。如何让它用单引号替换所有双引号,以便我可以将其存储到数据库中?
sqlite3_stmt *statement;
NSString *string = [NSString stringWithString:charDesc.text];
[string stringByReplacingOccurrencesOfString:@"\"" withString:@"''"];
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK)
NSString *insertSQL = [NSString stringWithFormat: @"UPDATE CHARACTER SET charName = \"%@\", charDescription = \"%@\" WHERE charID = %i", charName.text, charDesc.text, charID];
const char *insert_stmt = [insertSQL UTF8String];
sqlite3_prepare_v2(database, insert_stmt, -1, &statement, NULL);
if (sqlite3_step(statement) == SQLITE_DONE)
status.text = @"Succesfully Updated!";
else
status.text = @"Failed to Update!";
sqlite3_finalize(statement);
sqlite3_close(database);
【问题讨论】:
你没有。您准备语句、绑定变量并插入行。 是什么意思?如果没有任何双引号,我可以成功添加到我的数据库中。但是如果我有双引号,我将无法添加 是的,你会的。如果您绑定变量,而不是自己构建完整的语句,sqlite 将处理所需的任何转义。 对不起。但你能给我举个例子吗?谢谢! sqlite.org/c3ref/bind_blob.html 【参考方案1】:string=[string stringByReplacingOccurrencesOfString:@"\"" withString:@"'"];
【讨论】:
以上是关于用单引号替换双引号以存储在 SQLite 中的主要内容,如果未能解决你的问题,请参考以下文章