2013-03-22 75 views
0

我在實際使用POST來保存/更改我的數據庫中的信息時遇到了問題。有人可以幫我嗎?在目標中使用POST c

NSDictionary *newDatasetInfo = [NSDictionary dictionaryWithObjectsAndKeys:un, @"username", n, @"name", pn, @"phonenumber",em, @"email", nil]; 

NSError *error; 

NSData* jsonData = [NSJSONSerialization dataWithJSONObject:newDatasetInfo options:kNilOptions error:&error]; 


NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
[request setURL:url]; 
[request setHTTPMethod:@"POST"]; 
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
[request setHTTPBody:jsonData]; 

// print json: 
NSLog(@"JSON summary: %@", [[NSString alloc] initWithData:jsonData 
               encoding:NSUTF8StringEncoding]); 
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 
[connection start]; 

上面的代碼是從應用我的服務器端代碼的樣子: 也請不說這個代碼是在一個PHP文件

if(!isset($_GET["username"])) 
{ 
    // adding new record 
    $q = sprintf("insert into users (username, name, phoneNumber, email) values ('%s','%s', '%s', '%s')", 
     mysql_real_escape_string($_GET["username"]), 
     mysql_real_escape_string($_GET["name"]), 
     mysql_real_escape_string($_GET["phone"]), 
     mysql_real_escape_string($_GET["email"])); 
} 
else 
{ 
    // update the record 
    $q = sprintf("update users set name = '%s', phoneNumber = '%s', email = '%s' where username = '%s'", 
     mysql_real_escape_string($_GET["name"]), 
     mysql_real_escape_string($_GET["phoneNumber"]), 
     mysql_real_escape_string($_GET["email"]), 
     mysql_real_escape_string($_GET["username"])); 
} 
+0

你能解釋一下會發生什麼嗎? – gaige 2013-03-22 12:41:29

回答

0

也許不是最理想的方式,但我可以提出一個工作;

在iOS端;

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:user 
                 options:kNilOptions 
                 error:&error]; 
    if (!jsonData) { 
     NSLog(@"Error:%@",error); 
    } 
    else { 
     jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 
    } 

    NSString * params = [[NSString alloc] initWithFormat:@"user=%@",jsonString]; 

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:kLinkUpdateFacebook]]; 
    [request setHTTPMethod:@"POST"]; 
    [request setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding]]; // and send the request 

在php上;

<? 
    $json_user = json_decode($_POST["user"],true); 

    echo $json_user["name"]; 
?> 
+0

讓我知道如果你需要進一步的問題,這種方法發送它作爲後參數和收集它在php中呈現 – Bartu 2013-03-22 13:24:01

0

你有沒有在你的PHP代碼解碼JSON對象?

OR

嘗試設置如下

[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 

,如果你需要以下

[request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 

希望這有助於我不知道。

+0

謝謝,但我的php代碼似乎是在數據庫中添加一個空白項,它甚至在我從瀏覽器調用url時執行此操作。我傳遞的應用程序的信息錯了嗎?或者我的PHP文件可能有問題? – AkC 2013-03-22 13:16:36

+0

我相信你需要在PHP中正確訪問它。因爲iPhone代碼似乎是正確的。 – Kunal 2013-03-22 13:28:39