sql >> Databasteknik >  >> RDS >> Mysql

Skicka textfältsvärde till PHP MySQL med xcode 8 (Objective-c) med eller utan klickåtgärd?

Det finns flera sätt att göra det. Först är det viktigt att notera att dataWithContentsOfURL är inte en asynkron begäran. Det betyder att om du använder den för att överföra stora data, finns det en god chans att du fryser appen. För asynkförfrågningar bör du använda NSURLRequest.

Med det sagt finns det utmärkta API för att ladda upp/ladda ner data asynkront. En som används mycket ofta och väldokumenterad är AFNetworking . Detta kodas ovanpå NSURLRequest.

Till exempel, i din PHP kan du hämta fälten från en POST-sats så här:

<?php
  $username = $_POST["username"];
  $email = $_POST["email"];
?>

I din app kan du anropa PHP-skriptet med en POST-begäran i AFNetworking enligt följande:

NSString *username = @"username";
NSString *email = @"email";
NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"yourUrl" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    NSLog(@"Sending POST request to server");

    [formData appendPartWithFormData:[username dataUsingEncoding:NSUTF8StringEncoding] name:@"username"];
    [formData appendPartWithFormData:[email dataUsingEncoding:NSUTF8StringEncoding] name:@"email"];

} error:nil];

AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];

NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithStreamedRequest:request progress:^(NSProgress * _Nonnull uploadProgress) {

    dispatch_async(dispatch_get_main_queue(), ^{
        NSLog(@"SERVER UPLOAD FRACTION COMPLETED: %f", uploadProgress.fractionCompleted);
    });

} completionHandler:^(NSURLResponse * _Nonnull response, id  _Nullable responseObject, NSError * _Nullable error) {

    NSLog(@"responseObject %@", responseObject);
    NSString *responseString = [[[NSString alloc] initWithData:responseObject encoding:NSASCIIStringEncoding] mutableCopy];
    NSLog(@"The respose is: %@", responseString);

    if(error) {
        NSLog(@"Error: %@", error);

    } else {
        NSLog(@"The response is: %@", responseString);
        // Do something with the response
    }
}];
[uploadTask resume];


  1. Använd ORDER och GROUP med MySQL för att få det högsta antalet för varje GROUP

  2. Vad betyder M,D i decimal (M,D) exakt?

  3. ALTER TABLE-tabell AUTO_INCREMENT =$x

  4. SQL Server Dynamic Pivot i UDF som returnerar tabell