2013-06-07 2 views
0

Я использовал этот код для декодирования JSON, посланное с завитком (POST):PHP Json расшифровывает это нормально, но декодирование значения являются недействительными

$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 (, ,) 

Недействительные значения ...

Любой намек? Где я ошибаюсь? Заранее спасибо

ответ

1

Вы не правильно задаете переменные.

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

Спасибо много: теперь работает как шарм;) – user2452426

0

У вас есть дополнительные $ знаки в вашем коде, такие как:

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

Попробуйте вместо этого:

$id_a = $json_obj -> {'id_a'}; 
$id_b = $json_obj -> {'id_b'}; 
$value = $json_obj -> {'value'}; 
Смежные вопросы