2011-12-28 33 views
3

我的应用程序需要连接到并从位于服务器上的MySQL数据库获取数据。我已经成功地与当地我的应用程序SQLite数据库接口,但是这是第一次我有一个远程 MySQL数据库进行交互。对iPhone应用程序需要连接到远程MySQL的建议

我理解这个过程包括:

1)的iPhone应用程序发送该请求某种API的被执行的服务器
2)和没有实际的“会说话”到数据库服务器,然后它将查询结果作为XML(或JSON)返回。
3)然后iPhone解析返回的信息并使用它,但需要它。

我需要帮助的是第2步 - API。我不知道PHP,我不知道PERL - 我真的必须学习其中之一才能编写API吗?我认为这个iphone到远程的MySQL任务会非常普遍,以至于这些API已经在那里,可以自由使用 - 但我没有看到任何东西。

我知道Objective-C真的很好 - 但我应该使用XML还是JSON?我应该学习PERL还是PHP?

任何提示或建议将不胜感激。

回答

1

如果你不知道你正在看的是什么,这很难给你一个明确的答案,但是听起来你的web服务/ API部分应该很轻松。在这种情况下,用任何语言编写它都应该很容易。如果你熟悉Objective-C,那么拿起一些PHP或Ruby应该很容易。

你提到PHP和Perl。我用PHP看到的好处是它可以在任何托管服务上使用。例如,with PHP you can make MySQL queries in a few lines of code。否则,如果Web服务位于您拥有的计算机上,或者如果您拥有更多的灵活性,那么使用Ruby和像Sinatra这样的小框架编写某些内容可能会更容易。

关于使用XML或JSON序列化数据,这取决于API返回的数据类型。一般来说,JSON会简单得多,并且支持双方都很好: - 使用Ruby,您可以看到在这里使用JSON有多简单:http://flori.github.com/json/ - 使用Objective-C,您可以使用从iOS5开始可用的NSJSONSerialization

+0

感谢PHP教程链接!我已经使用了那里的代码,并得到了一个基本的PHP查询与我的MySQL数据库工作。 PHP执行简单的“SELECT * FROM myTable”命令,并返回来自我的数据库的所有内容,并将结果显示为HTML表格。那么这是否被认为是Web服务?我刚写了我的第一个API吗? :-)如果是这样,我现在如何从iPhone应用程序中调用它?我该如何调用这个PHP文件?通过NSURLRequest方法?像“requestWithURL:”等?我怎样才能回到我的应用程序,所以我可以解析它?使用SOAP?你可以提供更多提示吗? – sirab333 2011-12-29 02:54:22

+0

到目前为止,您还没有真正建立一个API,但确实是一个小型的Web服务。不要在HTML表格中显示结果;实际上,甚至不会返回HTML。让你的PHP代码输出JSON格式。确保页面mimetype是JSON。在你的iPhone上,你用这个PHP文件构建一个NSURLRequest作为URL。为请求返回的数据主体将包含JSON格式文件。 – Kamchatka 2011-12-29 15:27:00

+0

好吧,自从我上一篇文章以来,我已经取得了很大的进步,现在一切都在进行中。你是对的:我正在生成HTML表格,但是我需要生成XML(我知道你建议使用JSON,但是因为我知道_some_ XML,我想我会从那里开始)。无论如何,它的工作很棒:-)我的PHP文件正在生成XML文件,然后由我的应用程序读取和解析。我会尽量在JSON中做所有的事情。这里有一个新问题:我注意到,当我在MySQL数据库中进行更改时,这些更改未反映在PHP脚本生成的XML文件中。我必须再次运行PHP脚本(续) – sirab333 2011-12-30 01:25:12

0

那么你可以直接从iPhone as show here跟使用Objective C的客户端的远程MySQL服务器

+0

好吧,这看起来很有趣(谢谢!) - 但我得问:用苹果公司的这款图书馆是否能够让你的应用程序进入App Store?只问问原因,我知道他们对你的代码编码真的很严格......这方面的任何信息? – sirab333 2011-12-29 02:44:11

+0

我不认为你会有任何问题。 – Puran 2011-12-30 06:51:47

+0

与此相关的一个问题是它需要将mysql服务器暴露给外部世界,并且它在托管解决方案上并不常见。 – Kamchatka 2011-12-30 09:15:44

相关问题