Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 目标C中的SQLite保存字符串_Iphone_Objective C_Sqlite_Nsstring - Fatal编程技术网

Iphone 目标C中的SQLite保存字符串

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

您好,我正在尝试将字符串保存到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

如何保存字符串的方法:

- (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。可能是什么?你是如何得到价值的?