0

データベースにいくつかの値を送信しようとしています。iOS のコードと Php コードを次に示します。

バックグラウンドで場所を受信して​​おり、これをデータベースに保存したいのですが、

どんな助けでもいいでしょう。ありがとうございました

NSString *latitude =  [NSString stringWithFormat:@"%f", newLocation.coordinate.latitude];
NSString *longitude =  [NSString stringWithFormat:@"%f", newLocation.coordinate.longitude];
NSString *stringFromDate = [formatter stringFromDate:newLocation.timestamp];


NSMutableURLRequest *request =
[[NSMutableURLRequest alloc] initWithURL:
 [NSURL URLWithString:@"http://www.yourdomain.com/location.php"]];

[request setHTTPMethod:@"POST"];

NSString *postString = [postString stringByAppendingFormat: latitude, longitude, stringFromDate];

[request setValue:[NSString
                   stringWithFormat:@"%d", [postString length]]
  forHTTPHeaderField:@"Content-length"];

[request setHTTPBody:[postString
                      dataUsingEncoding:NSUTF8StringEncoding]];

[[NSURLConnection alloc] initWithRequest:request delegate:self];




}

- (void) connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response;
   [httpResponse statusCode];
}

そして私のPHPファイル

  <?php
  // Connecting, selecting database

  $id = $POST['id'];
$longitude = $POST['longitude'];
  $latitude = $POST['latitude'];
 $timestamp = $POST['stringFromDate'];



  $link = mysql_connect('server', 'user', 'pass')
or die('Could not connect: ' . mysql_error());

 mysql_select_db('db_name') or die('Could not select database');

 // Performing SQL query
  $query = "INSERT INTO table locatie=(id, longitude, latitude, timestamp)VALUES ('NULL',   '".$longitude."', '".$latitude."', '".$timestamp."')";
 $result = mysql_query($query) or die('Query failed: ' . mysql_error());

  echo "OK";

 // Free resultset
 mysql_free_result($result);

 // Closing connection
 mysql_close($link);
 ?>

この行に EXC_BAD_ACCES が表示されます: FIXED

  NSString *postString = [postString stringByAppendingFormat: latitude, longitude, stringFromDate]; **FIXED**

本当にありがとうございます。

あいさつ

4

1 に答える 1

1

ポスト文字列変数の割り当ては、右側が評価された後に行われるため、そこで postString 変数を使用すると、スタック上にゴミがあっただけであり、有効な文字列へのポインターではないことはほぼ確実です。他の文字列と同じように、その文字列を作成するだけです。

// fix the formatting as necessary for your app
NSString* postString = [NSString stringWithFormat:@"%@ %@ %@", latitude, longitude, stringFromDate];
于 2012-09-03T12:38:49.083 に答える