将数据从JSON post输入数据库到PHP时在mysql中获取空行

将数据从JSON post输入数据库到PHP时在mysql中获取空行,php,mysql,ios,json,Php,Mysql,Ios,Json,我将JSON与POST方法一起使用到PHP,我能够在Xcode中显示值,但在mySql中没有显示值。它显示的是空行。我想我的PHP代码可能缺少某些部分。请帮帮我 我的Xcode代码 - (IBAction)uploadData:(id)sender { NSDictionary *loginDict = [NSDictionary dictionaryWithObjectsAndKeys: self.ship

我将JSON与POST方法一起使用到PHP,我能够在Xcode中显示值,但在mySql中没有显示值。它显示的是空行。我想我的PHP代码可能缺少某些部分。请帮帮我

我的Xcode代码

- (IBAction)uploadData:(id)sender {

        NSDictionary *loginDict = [NSDictionary dictionaryWithObjectsAndKeys:
                                   self.shipmentID.text, @"name",

                                  nil];




        NSError *error;
        NSData *jsonData = [NSJSONSerialization dataWithJSONObject:loginDict
                                                           options:0 // Pass 0 if you don't care about the readability of the generated string
                                                            error:&error];

        if (! jsonData) {
            NSLog(@"Got an error: %@", error);
        } else {
            NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
       // NSString *jsonString=@"{"username":"root","password":""}";
            NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
                NSString *post = [NSString stringWithFormat:@"json=%@", jsonString];
                //NSLog(@"fweffwr %@" , jsonString);
                NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:NO];

                [request setURL:[NSURL URLWithString:@"http://localhost/~robot/post.php"]];
                [request setHTTPMethod:@"POST"];

                [request setHTTPBody:postData];
            NSLog(@"checking %@",post);
            [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
            [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
            [request setValue:[NSString stringWithFormat:@"%d",[postData length]] forHTTPHeaderField:@"Content-Length"];
               // [[NSURLConnection alloc] initWithRequest:request delegate:self];
            [NSURLConnection connectionWithRequest:request delegate:self];
        }

    }
我的PHP代码

<?php
    $con=mysqli_connect("127.0.0.1","root","","PalletApp");
    if (mysqli_connect_errno())
    {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    else
    {
        echo "Success";
    }

    $json = $_SERVER['HTTP_JSON'];
    echo "JSON: \n";
    echo "--------------\n";
    var_dump($json);
    echo "\n\n";

    $data = json_decode($json);
    echo "Array: \n";
    echo "--------------\n";
    var_dump($data);
    echo "\n\n";

    $name = $data->name;

    echo "Result: \n";
    echo "--------------\n";
    echo "Name     : ".$name; 
    $sql = "INSERT INTO sample values('$name')";
    mysqli_query($con,$sql);

    mysqli_close($con);
?>

编写插入查询时,请始终尝试指定字段名

$name = mysql_real_escape_string($name);
$sql = "INSERT INTO sample(`field_name`) values('$name')";

也可用于安全地将日期插入mysql。

表中的字段是什么
示例
,可能您试图将数据输入到错误的字段是否尝试回显
$name
,并查看是否有值?示例数据库中只有一个字段,如果我们给出回显,我对它的显示位置感到困惑。如果我们硬编码$name的值,效果会很好。
var\u dump($json)
打印什么?我是PHP新手,我不知道PHP回显值打印在哪里。我尝试了,但没有显示任何内容。当我尝试这样做时,也没有添加行。
field\u name
应该是mysql表字段的名称。请让我知道你有多少字段用于表
sample
我的示例数据库中只有一个字段,我在mysql表字段中尝试了field\u name,但无法打印数据。尝试使用mysql\u real\u escape\u string我也尝试了mysql\u real\u escape\u字符串,但仍然没有在mysql中显示数据。而不是$name=$data->name;例如,我尝试了$name='999',然后这个值显示在mysql中。我认为问题可能出在$data->name上。