【发布时间】:2013-11-30 01:21:31
【问题描述】:
我正在尝试在 iOS 设备上获取我的整个本地 sqlite 数据库,并使用 http post 将其发送到我的服务器以将其插入 MySQL 数据库。我正在为我的数据库使用 FMDB,并且我有 5 个表要插入到一个对象中。我能够使用 php 对我的远程服务器执行此操作,但不确定如何在 xcode 中执行此操作。这是我发送对象的代码,但我不知道如何打包我从另一个答案中窃取的 json 对象 (How do I send the data I have in my sqlite database to the server with HTTP and JSON)
NSMutableURLRequest *request;
request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:[NSString stringWithFormat:@"%d", [requestdata length]] forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:requestdata];
//this kicks off the request asynchronously
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
【问题讨论】:
-
您是否考虑过将等效的 SQL 作为文本发送?只要你从不在服务器上执行它,它就是安全的。您可能会发现它更小,而且肯定更容易理解。
-
不,我没有考虑过。我从未在 iOS 或服务器端工作过。我该怎么做呢?而这在这方面取得了什么成就?我需要在我的客户端应用程序中获取数据并将行插入到远程不包含的远程服务器中,所以我要做一个循环来检查它
-
哦。如果是这种情况,您甚至不需要整个转储。只需将您感兴趣的表的内容导出为 JSON 对象:字典数组。一旦您将数据放入字典数组中,iOS 的 JSON 编码器应该能够处理这个问题。你是如何访问 SQLite 的?您是否使用已经将记录转换为字典的包装器?
-
我使用 FMDB 作为包装器,我得研究一下