解码多维数组并插入到mysql中

时间:2016-02-15 09:53:37

标签: javascript php mysql json

我将使用ajax发送到php文件并将其插入mysql数据库后,从xmlhttp请求获取值时遇到问题。我从yahoo finance api获得了你可以在html片段中看到的输出。之后,应将此html元素的值发送到文件insertvolume.php

成功发送后,我将数据保存到名为$jsonString的变量中并对其进行解码。然后我尝试从数组中插入一个特定的值到我的mysql数据库,但它不会工作。我认为问题是该值是进入任何其他数组但我不知道如何写。我只需要名为results任何提示的数组?

html:

   <div id="output">{"query{"count":1,"created":"20160215T09:15:04Z","lang":"deDE","resu‌​lts":{"quote":{"symbol":"ZN","Ask":"2.05","LastTradeRealtimeWithTime":null,"Chang‌​ePercentRealime":null,"ChangeFromYearHigh":"-0.45","LastTradeWithTime":"4:00pm<b>‌​1.81</b>",astTradePriceOnly":"1.81", "Volume":"500","HighLimit":null,"LowLimit":null,"DaysRange":‌​"1.781"}}}}</div>   

的javascript:

var outputt = $('#output').text();
$.ajax({
            type: "POST",
            dataType: "json",
            url: "insertvolume.php",
            data: {myData: outputt},
            success: function(data){
                //alert('Items added');
            }
    });

来自insertvolume php的一些代码:

 $jsonString = $_POST['mydata'];
    $jsonArray = json_decode($jsonString, true);
$jsonArray1 = $jsonArray['query']['results']['quote'];
    if ($stmt = $mysqli->prepare('INSERT INTO volume ( stocksymbol, volume, time) VALUES ( ?, ?, now())')) {

        /* bind parameters for markers */
        $stmt->bind_param($jsonArray1['symbol'], $jsonArray1['volume']);

        /* execute query */
        $stmt->execute();

        /* close statement */
        $stmt->close();
    }

3 个答案:

答案 0 :(得分:2)

解码数据后,您无法直接检索json数据。我们应该为此创造对象。在这里,我将为您提供如何访问json值的参考链接。

Get value from JSON array in PHP

答案 1 :(得分:1)

在javascript代码中,它被写为 var outputt = $(&#34; #output&#34;).val();

但是div没有价值。内容存在于div中。所以将行代码更改为

var outputt = document.getElementById(&#39; output&#39;)。textContent and try。

现在您可以在javascript中访问该数组。但是我们无法从您的线路访问输出代码的数据。

答案 2 :(得分:1)

在ajax调用中删除行

contentType:“application / json; charset = utf-8”,

然后执行。它会起作用