我正在尝试从json数组中获取两个变量的值。数组使用 ajax 发送,然后解码并"保存"为 $jsonarray
。然后,我尝试从数组中获取volume
和symbol
变量,并将它们插入到我的数据库中。我不明白这个$jsonarray->result->{"quote"}->symbol
的语法,并尝试了它的正确性,但错误不会消失。
这是我的数组:
{"query":{"count":1,"created":"2016-02-15T15:11:47Z","lang":"de-DE","results":{"quote":{"symbol":"ZN","Ask":"2.05","Bid":"1.78","Volume":"13214","PercentChange":"+0.56%"}}}}
相关 PHP 片段:
$jsonString = $_POST['mydata'];
$jsonarray = json_decode($jsonString[0]['query']);
if ($stmt = $mysqli->prepare('INSERT INTO volume (stocksymbol, volume, time) VALUES ( ?, ?, now())')) {
/* bind parameters for markers */
$stmt->bind_param("si", $jsonarray->result->{"quote"}->symbol, $jsonarray->result->{"quote"}->Volume);
/* execute query */
$stmt->execute();
/* close statement */
$stmt->close();
}
你确定这行是正确的吗? $jsonarray = json_decode($jsonString[0]['query']);
在这种情况下,您应该通过以下方式访问结果: $jsonarray->query->results->...
尝试:
/* bind parameters for markers */
$stmt->bind_param("ss", $jsonarray->result->{"quote"}->symbol, $jsonarray->result->{"quote"}->Volume);
您可以尝试将 JSON 解码为关联数组。假设$_POST['mydata']
包含您向我们展示的 JSON 字符串,请尝试以下操作:
$jsonString = $_POST['mydata'];
$jsonarray = json_decode($jsonString, TRUE);
这样,您可以通过更一致的方式访问这些值:
$stmt->bind_param(
"si",
$jsonarray['query']['results']['quote']['symbol'],
$jsonarray['query']['results']['quote']['Volume']
);