有很多方法可以做到这一点,一些“更正确”比别人:-)但你是正确的。 我解释了我会在类似情况下做什么:
1-对于PHP引擎,您应该创建一个API来访问您的数据。哪些数据? 最简单,也许你可以做的第一件事就是测试(仅用于测试目的!)是创建一个页面,通过POST从您的ios APP接收查询并用编码的JSON字符串回答。使用JSON,您可以传输整个对象层次结构:变量,数组,字典......由您决定如何将对象链接在一起。 如果您想对数据进行编码是一个表,你可以做一些与此类似:
// first connect to the database and execute the query, then...
$data = array();
while(!$RS->EOF){
for ($i = 0; $i < $cols; $i++){
$rowName = utf8_encode($RS->Fields[$i]->name);
$rowValue = utf8_encode($RS->Fields[$i]->value);
$rowData[$rowName] = $rowValue;
}
array_push($data, $rowData);
$RS->MoveNext();
}
$response['data'] = $data;
echo json_encode($response);
结果与第一字典,一个名为“数据”键JSON对象。 在“数据”键里面有一个字典数组。每个字典有关键的列名,并为数据的列值:
data = (
{
attivita = "this is the first row in the table";
id = 2548;
},
{
attivita = "this is the second row in the table";
id = 2547;
};
}
您只需使用json_encode来创建JSON字符串。
在iPhone端,我建议你下载并使用AFNetworking。这是一个非常好的和开源框架,有很多内置的对象和方法对HTTP/HTTPS请求,XML,JSON ECC ... 使用AFNetworking你可以以类似的方式请求:
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:@"http://url.for.the.php.page"];
NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" path:mainPath parameters:params];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
// your success code here
// remember, the first object is a dictionary with a key called data
NSArray *arrayOfData = [JSON objectForKey:@"data"];
NSMutableArray *arrayOfActivities = [NSMutableArray array];
for (NSDictionary *objectDictionary in arrayOfData) {
// objectDictionary is your dictionary containing
// a key with the column name and a value with the column content
// here you can init your custom objects
}
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
// your failure code here
}];
[operation start];
正如你所看到的,JSONRequestOperationWithRequest:方法完成处理程序返回你解码JSON,这样你就可以访问你的字典/阵列直接使用objectForKey或objectAtIndex ;-)
最后建议:在生产和安全的环境,你应该避免通过发布请求发送查询。我在这里粘贴的代码是用于私人应用程序(仅供我用于测试目的)。最好为每种请求和安全的身份验证方法使用不同的API(查看oAuth)。 我建议你看看Instagram或Twitter API(Instagram更简单),试图使用它。他们会给你一些关于如何创建你自己的API的想法。
祝你好运
在url 38917这是什么?方法? –
这只是我编写的一个数字,它是一个PHP模块请求的示例URL结构。通常你会在URL请求中看到方法参数,所以我选择的数字可以表示类似于数据库中对象的唯一标识符。 –