2011-03-24 102 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