Iphone 目标C中的SQLite保存字符串
您好,我正在尝试将字符串保存到SQLite数据库中,但什么也没发生。我有一个字符串: Tret4444%40ukr.net%3A100001740940428%3A06Kz8p1Xbk0PzpH%2F%3A0%3Av\u 1%2Cajax\u 1%2Cwidth\u 320%2Cpxr\u 1%2Cgps\u 1%3A1307716802 我正试图将其保存到数据库,但无法将字符串保存为: Tret4404 80792kr.net-0X1.FD428P+01000017409404280X1.B2C26000001P-100906Kz8p1Xbk0PzpH0.0000000X1.14924P-104700X1.400000018P-1040v\u 1灠阿贾克斯1Ῐ宽度320 如何保存字符串的方法:Iphone 目标C中的SQLite保存字符串,iphone,objective-c,sqlite,nsstring,Iphone,Objective C,Sqlite,Nsstring,您好,我正在尝试将字符串保存到SQLite数据库中,但什么也没发生。我有一个字符串: Tret4444%40ukr.net%3A100001740940428%3A06Kz8p1Xbk0PzpH%2F%3A0%3Av\u 1%2Cajax\u 1%2Cwidth\u 320%2Cpxr\u 1%2Cgps\u 1%3A1307716802 我正试图将其保存到数据库,但无法将字符串保存为: Tret4404 80792kr.net-0X1.FD428P+01000017409404280X1.B2
- (void) addCookie {
if(addStmt == nil) {
const char *sql = "insert into FaceBookCookies(userId, created, domain, Expires, HttpOnly, Name, Path, Value) Values(?, ?, ?, ?, ?, ?, ?, ?)";
if(sqlite3_prepare_v2(database, sql, -1, &addStmt, NULL) != SQLITE_OK)
NSAssert1(0, @"Error while creating add statement. '%s'", sqlite3_errmsg(database));
}
sqlite3_bind_int(addStmt, 1, userID);
sqlite3_bind_int(addStmt, 2, created);
sqlite3_bind_text(addStmt, 3, [domain UTF8String], -1, SQLITE_STATIC);
sqlite3_bind_double(addStmt, 4, [Expires timeIntervalSince1970]);
sqlite3_bind_text(addStmt, 5, [HttpOnly UTF8String], -1, SQLITE_STATIC);
sqlite3_bind_text(addStmt, 6, [Name UTF8String], -1, SQLITE_STATIC);
sqlite3_bind_text(addStmt, 7, [Path UTF8String], -1, SQLITE_STATIC);
sqlite3_bind_text(addStmt, 8, [Value UTF8String], -1, SQLITE_STATIC); //here is a String...
if(SQLITE_DONE != sqlite3_step(addStmt))
NSAssert1(0, @"Error while inserting data. '%s'", sqlite3_errmsg(database));
else
//SQLite provides a method to get the last primary key inserted by using sqlite3_last_insert_rowid
userID = sqlite3_last_insert_rowid(database);
//Reset the add statement.
sqlite3_reset(addStmt);
}
请帮助解决此问题…在保存之前,您可能必须删除逃逸百分比。这样做,
sqlite3_bind_text(addStmt, 8, [[Value stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding] UTF8String], -1, SQLITE_STATIC);
在提交问题之前,你看过预览了吗?把它格式化好让我们看看发生了什么?请参阅此处的格式帮助:dean是对的,您可以使用格式谢谢,但现在它返回字符串:tret440468667kr.net0X0P+0100001740904280x1.B269C04C123DP-100906Kz8p1Xbk0PzpH0.0000000X1.D849400016C8CP-102100X1.d84fdbffd4f8p-1021v_1靰阿贾克斯1ව宽度320츰pxr_1鑰gps_10X1.9000004C1947P+51307716802Ok,我保存字符串。。现在我有一个SQLite错误,可能是=当我保存字符串并显示它时,我有:tret4440468667kr.net0X0P+01000017404280x1.B269C04C123DP-100906Kz8p1Xbk0PzpH0.0000000X1.D849400016C8CP-102100X1.d84fdbffd4f8p-1021v_1靰阿贾克斯1ව宽度320츰pxr_1鑰gps_10X1.9000004C1947P+51307716802但当我重新启动程序时,我有一个带@的正常字符串,它正在替换%40。可能是什么?你是如何得到价值的?