目标C.通过POST方法

时间:2016-02-02 16:16:53

标签: php objective-c xcode

请帮我解决一个问题。我浪费了很多时间,但仍然无法找到错误。

在Web上有一个名为“c3chickens”的mySql数据库。它有1个表“鸡”,包含3行:id,昵称和分数。 我的应用程序连接到数据库,读取和解析数据并显示结果。它工作正常。

但我还需要在数据库列中编写新的昵称和分数。以下是xcode中此操作的代码:

    NSDictionary *jsonElementToServer = [[NSDictionary alloc] initWithObjectsAndKeys:login, @"login", bestScore, @"score",  nil];
    NSLog(@"score %@", [jsonElementToServer description]);
    NSError* err = nil;
    NSData* jsonData = [NSJSONSerialization dataWithJSONObject:jsonElementToServer options:0 error:&err];    
    NSString *url = @"http://chickens.gol.com/php.php";
    url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSMutableURLRequest *theRequest=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]
                                                            cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                        timeoutInterval:60.0f];
    NSMutableData *body = [NSMutableData data];
    [body appendData:jsonData];
    [theRequest setHTTPBody:body];
    [theRequest addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    [theRequest setHTTPMethod:@"POST"];

    NSURLConnection *connection = [NSURLConnection connectionWithRequest:theRequest delegate:self];
    if (connection) {
        NSLog(@"connect");
        self.infoData = [NSMutableData data];
    } else {
        NSLog(@"Connection failed");
    }

这是我的php.php文件:

<?php
$username = "...";
$password = "...";
$hostname = "localhost";
$dbnamemysql = "c3chickens";
$mysqli = new mysqli($hostname, $username, $password, $dbnamemysql);

if(!$mysqli){
    exit("ERROR DB");
    $result = "NO METHOD";

}else{
     mysql_select_db( 'c3chickens' );
     mysql_query( "INSERT INTO chickens ('nickname', 'score') VALUES ( null, null, '".
    mysql_real_escape_string( $_REQUEST['login'] ).
    "', '".
    mysql_real_escape_string( $_REQUEST['score'] ).
    "')" );
    $result = $mysqli->query($query);
}
?>

之前我没有使用PHP,所以我不懂这种语言。我在互联网上阅读了一些例子并尝试了很多这个php文件的变种,但没有结果。一世 怀疑我错过了一些重要而简单的细节。

1 个答案:

答案 0 :(得分:0)

永远不要混用mysql with mysqli

编写您的PHP代码如下。

os.system('openssl smime -verify -in /tmp/mails/d4fa5d0f-2250-4acd-8d3d-14c4e9743392')

在文件开头写下两行: -

// Connection object
$con = mysqli_connect($hostname, $username, $password, $dbnamemysql) or die("Some error occurred during connection " . mysqli_error($con));
// Get data in variables. Here use mysqli_real_escape_string
$login =  mysqli_real_escape_string($con, $_REQUEST['login']);
$score =  mysqli_real_escape_string($con, $_REQUEST['score']);
// Query execution
$result = mysqli_query($con , "INSERT INTO chickens('nickname', 'score') VALUES('$login', '$score')" );
// $result will return true or false
if($result){
    echo 'success';
}else{
   echo("Error description: " . mysqli_error($con));
}

希望它会对你有所帮助:)。