2012-09-12 85 views
1

我想用一個字符串中的單引號替換所有雙引號。我嘗試過使用stringByReplacingOccurrencesOfString,但它不起作用。我如何使用單引號替換所有雙引號,以便我可以將其存儲到數據庫中?用單引號代替雙引號存儲在SQLite中

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); 
} 
+1

你不知道。您準備語句,綁定變量並插入行。 – trojanfoe

+0

的含義?如果沒有任何雙引號,我可以成功添加到我的數據庫中。但如果我有雙引號,我將無法添加 – icee

+0

是的,你會的。如果你綁定了變量,而不是自己構造完整的語句,sqlite將負責任何需要的轉義。 – trojanfoe

回答

1
string=[string stringByReplacingOccurrencesOfString:@"\"" withString:@"'"];