PHP Json解码没问题,但解码值无效

时间:2013-06-07 18:29:18

标签: php json post decode void

我用这段代码解码json,用curl(POST)发送:

$json_obj = json_decode( file_get_contents('php://input')); // JSON as obj
var_dump($json_obj);
$id_a = $json_obj -> {'$id_a'}; 
$id_b =  $json_obj -> {'$id_b'};
$value = $json_obj -> {'$value'};

它应该可以正常工作,因为var_dump()说:

object(stdClass)#1 (3) {
  ["id_a"]=>
  int(1)
  ["id_b"]=>
  int(1)
  ["value"]=>
  float(89.35)
}

然后我使用这些变量来进行SQL查询:

$sqlcmd = "INSERT INTO TABLE_1 (ID_A, ID_B, VALUE) 
          VALUES  (".$id_a.", ".$id_b.", ".$value.")";

我将它传递给mysql_query(),但这里是它如何读取$ sqlcmd:

INSERT INTO TABLE_1 (ID_A, ID_B, VALUE)
VALUES  (, , )

无效值......

任何提示?我错在哪里?提前致谢

2 个答案:

答案 0 :(得分:1)

您没有正确设置变量。

$id_a = $json_obj->id_a; 
$id_b =  $json_obj->id_b;
$value = $json_obj->value;

答案 1 :(得分:0)

您的代码中有额外的$符号,例如:

$id_a = $json_obj -> {'$id_a'};

请改为尝试:

$id_a = $json_obj -> {'id_a'}; 
$id_b =  $json_obj -> {'id_b'};
$value = $json_obj -> {'value'};