Php 在json_解码后获取空数据

Php 在json_解码后获取空数据,php,mysql,sql,Php,Mysql,Sql,我对Angular使用了一个HTTPPOST方法,得到了一个输出 data={"firstname":"sandeep","lastname":"chetikam","city":"Hyderabad","dateofbirth":"2017-06-08","gender":"Male"} 因此,我正在对数据进行json_解码,但无法从中获取值。 当我将数据插入Sql查询时。我得到一个空值 PHP代码: <?php header('Aceess-Control-Header-Origi

我对Angular使用了一个HTTPPOST方法,得到了一个输出

data={"firstname":"sandeep","lastname":"chetikam","city":"Hyderabad","dateofbirth":"2017-06-08","gender":"Male"}
因此,我正在对数据进行json_解码,但无法从中获取值。 当我将数据插入Sql查询时。我得到一个空值

PHP代码:

<?php 
header('Aceess-Control-Header-Origin: *');
include('connect_db.php');
$post = json_decode($_POST['data']);
$id= "$post.id";
$firstname="$post.firstname";
$lastname="$post.lastname";
$dateofbirth="$post.dateofbirth";
$city="$post.city";
$gender="$post.gender";


$sql = "INSERT INTO employees(firstname,lastname,dateofbirth,city,gender) VALUES ("$firstname",".$lastname.",".$dateofbirth.",".$city.",".$gender.")";
if (mysqli_query($conn,$sql)) {
    echo "DATA has been submitted";
}else{
    echo "error".mysqli_error($conn);
}
echo json_encode("Successful");
?>
php不使用点(.)字符访问属性。您需要使用箭头->。所以要了解你使用的性别

$gender = $post->gender;

您必须使用'->'来获取php中的对象值,但是您没有在我们的查询中给出'.

那就换掉这个吧

$id= "$post.id";
"INSERT INTO employees(firstname,lastname,dateofbirth,city,gender) VALUES ("$firstname",".$lastname.",".$dateofbirth.",".$city.",".$gender.")";


它会为您工作。

什么是
“$post.id”
?$post=json\u decode($\u post['data'],true);。。。。值(“.$firstname.”…echo json_encode(“成功”)->这里有些错误…通常,用户将查询结果编码以供将来用于其他目的数据格式是否正确??然后将空数据保存到表中。现在查询没有被调用。它没有保存任何内容。您修改了查询?是的。
当我尝试直接执行时,数据格式是否正确它的语法错误是“:”,声明的方式是否错误?因为您可以创建日期并插入类似DB的值(“..$firstname.”、“$lastname.”、“$dateofbirth.”、“$city.”、“$dateofbirth.”$‌​性别。”)”;
$gender = $post->gender;
$id= "$post.id";
"INSERT INTO employees(firstname,lastname,dateofbirth,city,gender) VALUES ("$firstname",".$lastname.",".$dateofbirth.",".$city.",".$gender.")";
 $id= $post->id;
 "INSERT INTO employees(firstname,lastname,dateofbirth,city,gender) VALUES (".$firstname.",".$lastname.",".$dateofbirth.",".$city.",".$gender.")";