【发布时间】:2011-07-05 17:20:48
【问题描述】:
我之前在 iPhone 应用程序中使用过 sqlite3,但是如何查询到位于我网站上的外部 SQL 数据库?
【问题讨论】:
我之前在 iPhone 应用程序中使用过 sqlite3,但是如何查询到位于我网站上的外部 SQL 数据库?
【问题讨论】:
您的应用不执行实际查询。执行此操作的正确方法是为您的网站设置一个 API,以便该网站进行查询并将适当的数据返回到您的应用程序。
您的 API 通常由多个端点组成,这些端点返回为您的应用格式化的数据。例如,您可以创建一个 PHP 或 Python 页面,在数据库中查询给定用户的所有帖子,并以 JSON 或 XML 编码数组的形式返回它们。 (数据格式完全由你决定。有用于解析这两种格式的框架可用于 iOS。)
例如,假设您的服务器上有一个返回星期几的 PHP 页面。你的 PHP 看起来像这样:
<?php
echo date("l");
?>
假设您已将其保存为 http://example.com/dayoftheweek.php
我建议使用ASIHTTPRequest 框架在您的应用程序中执行 HTTP 请求。也就是说,让我们继续设置到您的 PHP 页面的连接。假设您在项目中设置了所有 ASIHTTPRequest,请求可能如下所示:
NSURL *url = [NSURL URLWithString:@"http://example.com/dayoftheweek.php"]
ASIHTTPRequest *request = [[ASIHTTPRequest alloc] initWithURL:url];
[request setDelegate:self];
现在,您需要实现 ASIHTTPRequest 委托方法,以解析返回的数据。处理完成请求的方法如下所示:
- (void)requestFinished:(ASIHTTPRequest *)request{
//Here you would store the returned data and/or parse it
}
要实现 API,您的 PHP 页面会更加复杂。您将构建一个更复杂的请求,传入变量等,PHP 页面将像常规 Web 服务一样,返回您请求的数据。
【讨论】:
我认为您的意思是 MySQL。通常禁止从外部访问 MySQL 数据库,这是有充分理由的。您可能想要编写一个访问您的数据库的 API。您的 iPhone 应用将与此 API 通信以插入和检索数据。
【讨论】:
@StanLe:您不能直接在本机应用程序中使用 SQL Server 或 mySQL。但是,您可以通过以下方式将您的应用程序与外部 SQL 数据库通信。
这里是example
这里是sample Code
另一个非常Simple Example
如果仍有任何困惑,请回信。
【讨论】: