Php 将数据从Xcode发布到外部数据库

Php 将数据从Xcode发布到外部数据库,php,mysql,ios,objective-c,Php,Mysql,Ios,Objective C,我正在创建一个应用程序,用户点击两个按钮,它将信息上传到godaddy上托管的外部mysql数据库中。这段代码过去可以工作,但现在不再工作了,我不明白为什么它现在停止工作了。你能看出代码有什么问题吗?或者这甚至是最好的方法 在我的.h文件中,我有这个和我的文本字段 #define kPostURL @"http://www.mywebsite.com/dosomething.php" #define kName @"name" #define kMessage @"message" 在我的.m

我正在创建一个应用程序,用户点击两个按钮,它将信息上传到godaddy上托管的外部mysql数据库中。这段代码过去可以工作,但现在不再工作了,我不明白为什么它现在停止工作了。你能看出代码有什么问题吗?或者这甚至是最好的方法 在我的.h文件中,我有这个和我的文本字段

#define kPostURL @"http://www.mywebsite.com/dosomething.php"
#define kName @"name"
#define kMessage @"message"
在我的.m文件中,我有以下代码

-(void) postMessage:(NSString*) message withName:(NSString *) name{

//check isnt receiving two anit paramters
if(name !=nil && message !=nil){

    NSMutableString *postString = [NSMutableString stringWithString:kPostURL];

    [postString appendString:[NSString stringWithFormat:@"?%@=%@",kName, name]];
    //makes kname equal to name
    [postString appendString:[NSString stringWithFormat:@"&%@=%@", kMessage , message]];

    [postString setString:[postString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:postString]];
    [request setHTTPMethod:@"POST"];

    postConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];

        }
}


-(IBAction)post:(id)sender{
_textField3.text = @"15";
[self postMessage: self.textField2.text withName:self.textField3.text];
_textField2.text = nil;
_textField3.text = nil;
[self dismissViewControllerAnimated:YES completion:nil];
}
下面是我的php文件,这是工作,然后我把它改成(int)$\u POST[“name”],看看它做了什么,但它没有工作,然后我把它改回原来的$name=$\u POST[“name”],它不再工作了。它现在创建一个新的测试条目,但有空的名称和消息字段,与以前一样,它使用这些字段来填充它

<?php
include ("./inc/connect.inc.php");
//header('Content-type: application/json');

$name = $_POST["name"];
$message =$_POST["message"];    

$query = "INSERT INTO test VALUES ('','$name','$message')";

mysql_query($query) or die(mysql_error("error"));

mysql_close();

?>

就您的PHP而言,建议不要再使用
mysql.*
函数。将PDO与准备好的语句一起使用

然后,这取决于您希望如何将数据发送到服务器。基本上有两种选择:

  • 通过
    表单数据发送

    您的数据将像任何HTML发送数据一样发送,您将能够在PHP中使用
    $\u POST
    。请参阅以了解如何在iOS中执行此操作

  • 作为XML/JSON有效负载发送

    您的数据将作为JSON发送到请求正文中(请参阅)

可以处理此问题的PHP脚本可能如下所示:

<?php

/**
 * Handle POST request with JSON payload like:
 *
 * {"name": "a name","message":"hi"}
 */

$body = file_get_contents('php://input');
$json = json_decode($body);

$parameters = array(
    ':name'    => $json->name,
    ':message' => $json->message,
);

/**
 * Or alternatively handle POST request with form-data payload
 */
$parameters = array(
    ':name'    => $_POST['name'],
    ':message' => $_POST['message'],
);

// Use PDO, it is recommended over mysql_* functions for database interactions
// (can be outsourced to some included file if you prefer)
$db = new PDO(
    'mysql:dbname=somedb;host=database.example.com',
    'username',
    'password'
);

// Use prepared statements to prevent SQL injection
$statement = $db->prepare(
    'INSERT INTO test (name, message) VALUES (:name, :message)'
);
$statement->execute($parameters);
$statement->closeCursor();