2011-03-24 101 views
0

我有一个MySQL数据库/表设置和一个.php文件联机插入数据到MySQL数据库。我的PHP代码是在这里:如何使用Objective-c连接到我的php/MySQL服务器?

<? 

$name = $_GET['name']; 
$minScore = $_GET['minScore']; 
$hourScore = $_GET['hourScore']; 
$dayScore = $_GET['dayScore']; 

$service = "dddd.com"; 
$username = "dddd"; 
$password = "dddd"; 
$database = "dddd_DATA1"; 

mysql_connect($service, $username, $password); 
@mysql_select_db($database) or die("Unable to select database"); 

if($minScore>0) { 
    $query="INSERT INTO currentScores VALUES ('$name', '$minScore', '$hourScore','$dayScore',null)"; 
    $result=mysql_query($query); 
    echo("Score submitted! Name: $name, Score: $minScore"); 
} 
else { 
echo("No score was submitted"); 
} 

?> 

它的工作方式,我希望它键入一个URL链接这样的权利在浏览器中:http://dddd.com/sendScores.php?name=NAMEYNAME&minScore=22&hourScore=3&dayScore=1

我想现在要做的就是以某种方式从我的iPhone发送此objective-c应用程序。我认为我需要使用NSURLRequests和NSURLConnections,但是至今我一直无法实现它。我怎样才能做到这一点?如果你有时间...关于如何从数据库中获取信息返回到我的应用程序的任何想法?我是否需要使用php将它转换为xml(或者可能是.plist),然后在objective-c中使用xml解析器?感谢您的时间。

回答

2

我建议使用ASIHTTPFramework这使得请求URL更容易。为了提供一个简单的例子,用的NSURLRequest,你可以做一个同步请求:

NSError * error = nil; 
NSURLResponse * response = nil; 
NSData * downloadedData = [NSURLConnection sendSynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@""]] 
               returningResponse:&response 
                  error:&error]; 

downloadedData包含请求的响应体,因此应用程序接收到的数据发送一起。

不建议使用同步请求,因为它们会阻止您的整个应用程序。

选择发回数据的格式取决于复杂性。如果您只想返回状态码或某个字符串,请使用纯文本。如果你喜欢得到一个错误代码和一个数组或类似的结构化响应,我建议使用JSON。 XML也很好,但在iOS中使用XMLParsers可能会很痛苦。有很好的库来解析JSON,它被转换成NSDictionaries和NSArrays,因此可以很容易地在你的应用中使用。

我经常使用json-framork