将数据从JSON post输入数据库到PHP时在mysql中获取空行
我将JSON与POST方法一起使用到PHP,我能够在Xcode中显示值,但在mySql中没有显示值。它显示的是空行。我想我的PHP代码可能缺少某些部分。请帮帮我 我的Xcode代码将数据从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
- (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上。