如何使用-initWithContentsOfURL获取MySQL查询结果?

时间:2009-06-19 06:56:18

标签: mysql xml iphone

我有一个服务器端的php脚本,可以从MySQL表中获取结果。我试图从iPhone OS应用程序中检索这些结果。我使用以下方法:

NSURL *myURL = [NSURL URLWithString:@"http://www.someurl.com/login.php?id=anid"];
NSArray *sqlResults = [[NSArray alloc] initWithContentsOfURL:myURL];

//Show me what went into the Array
NSLog(@"%@", [sqlResults ObjectAtIndex:0]);

*底部的NSLog是我试图看到刚刚发生的事情。虽然NSLog语句打印出来(null)所以我被卡住了。我的问题是我不知道我试图用NSArray结果做什么,我可能做了很多错事。是否隐含了互联网连接(有蜂窝和Wi-Fi)?所以,我的问题是:我应该怎样做才能使用-initWithContentsOfURL来获取MySQL查询结果?

2 个答案:

答案 0 :(得分:2)

您的PHP脚本以哪种格式返回MySQL结果?看起来好像[NSArray initWithContentsOfURL:]要求数据采用非常特定的“属性列表”格式。您是否尝试过查看使用NSString时获得的输出?:

[NSString initWithContentsOfURL:encoding:error:]

这至少应该向您展示您从PHP脚本中获得的内容。最后,在property list format采取行动。您可能需要在服务器端脚本中执行转换,或者像BJ Homer建议的那样在iPhone上解析PHP结果集格式。

答案 1 :(得分:1)

根据-[NSArray initWithContentsOfURL:]说的文件

  

数组表示   由aURL标识的位置必须   仅包含属性列表对象   (NSString,NSData,NSArray或   NSDictionary对象)。

据我了解,这意味着它必须采用plist格式。如果您的结果不是plist格式,请尝试使用-[NSString initWithContentsOfURL:]。如果您想根据行拆分它,可以调用[downloadedString componentsSeparatedByString:@"\n"]