2011-05-11 53 views
0

如何在不使用webview的情况下对ios的phpadmin sql数据库进行读写调用?iOS:与sql数据库通信

+0

请多解释一下。 – taskinoor 2011-05-11 16:32:11

+1

可能会有所帮助:[1](http://stackoverflow.com/questions/5765855/access-sql-database-through-php)[2](http://stackoverflow.com/questions/71088/what-is最好的方式来访问数据库从PHP)[3](http://stackoverflow.com/questions/2441640/using-php-to-access-a-mysql-database) – 2011-05-11 16:37:45

回答

2

除非您的服务器不安全,否则您将无法直接访问数据库。相反,你将不得不使用PHP作为“桥梁”。下面是一些示例代码,让你开始你的PHP脚本:

<?PHP 
$con = mysql_connect("db.something.com","someuser","somepass"); 
if (!$con){die('Could not connect: ' . mysql_error());} 
mysql_select_db("db", $con); 
$result = mysql_query("SELECT * FROM table"); 
if(mysql_num_rows($result)) { 
    while($something = mysql_fetch_assoc($result)) { 
     $somethingmore[] = $something; 
    } 
    } 

header('Content-type: application/json'); 
echo json_encode($somethingmore); 
mysql_close($con); 
?> 

对于我来说,我需要它的JSON,所以我格式化JSON作为结果。在您的应用程序中,只需发出HTTP请求即可获取PHP脚本的结果。对我来说,就像这样(使用ASIHTTPRequest库):

NSURL *url = [NSURL URLWithString:@"http://www.test.com/something.php"]; 
__block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
[request setUsername:@"user"]; 
[request setPassword:@"pass"]; 
[request setDownloadProgressDelegate:downloadProgress]; 
[request setCompletionBlock:^{ 
    [self dosomething]; 
}]; 
[request startAsynchronous]; 

然后你可以解析数据并做适当的事情。

+0

你在哪里把PHP脚本? – SuperString 2011-05-11 20:26:22

+0

有没有办法将php脚本隐藏起来? – SuperString 2011-05-11 20:56:28

+0

@SuperString:PHP从不公开,因为它始终运行在服务器端。所以,把它放在你的网络服务器的某处。然后你可以简单地通过http://www.yoursitehere.com/yourfolderhere/yourscripthere.php举例来运行它。即使公众发现链接,他们也无法看到您的脚本。 – 2011-05-11 23:29:50

0

我在写一个自定义解决方案,它将利用基于IIS的WCF服务。该解决方案将允许您在Objective-C代码中编写SQL查询并返回DataTable的结果集。

这有什么可能帮助你做你需要的吗?不同类型的Web服务会更好吗?