0

我使用此代码解码 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  (, , )

无效值...

有什么提示吗?我在哪里弄错了?提前致谢

4

2 回答 2

1

您没有正确设置变量。

$id_a = $json_obj->id_a; 
$id_b =  $json_obj->id_b;
$value = $json_obj->value;
于 2013-06-07T18:31:25.677 回答
0

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

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

试试这个:

$id_a = $json_obj -> {'id_a'}; 
$id_b =  $json_obj -> {'id_b'};
$value = $json_obj -> {'value'};
于 2013-06-07T18:35:11.870 回答