来自mysql服务器的ajax.reload有错误:属性未定义

I am gathering live data from a mysql database using php and ajax. I want the data to be live updated every 2 seconds.

My code displays the chart and data as I want it, but does not live update the data from the database. The piece of code meant to be doing that is:

setInterval(function(){
            jsonData.ajax.reload();
            }, 2000);

And I think the error lies somewhere there as when I inspect the element with google chrome it tells me "Uncaught TypeError: Cannot read property 'reload' of undefined".

Here is the full JS code:

<script type="text/javascript">

      // load chart lib
      google.load('visualization', '1', {
        packages: ['corechart']
      });

      // call drawChart once google charts is loaded
      google.setOnLoadCallback(drawChart);

function drawChart() {
     var jsonData = $.ajax({
         url: "php/connection3_temp.php",
         dataType:"json",
         async: true
          }).done(function (results) {

          var data = new google.visualization.DataTable();

          data.addColumn('datetime', 'Time');
          data.addColumn('number', 'Ambient Temp.');
          data.addColumn('number', 'Object Temp.');
          data.addColumn('number', 'Humidity');

          $.each(results, function (i, row) {
            data.addRow([
              (new Date(row.timestamp)),
              parseFloat(row.amb_temp),
              parseFloat(row.obj_temp),
              parseFloat(row.hum)
            ]);
          });

         var options = {
          title: 'Temperature and Humidity against Time',
          legend: { position: 'bottom' },
          series: {
                0: {targetAxisIndex: 0},
                1: {targetAxisIndex: 0},
                2: {targetAxisIndex: 1}
          },
          vAxes: {0:    {title: 'Temp. (°C)',
                        minValue: 0,
                        maxValue: 30
                        },
                  1:    {title: 'Humidity (%)',
                        minValue: 20,
                        maxValue: 80
                        }
                 },
          hAxis: {
                  title: 'Time (s)'
                 },
        };

          var chart = new google.visualization.LineChart($('#temp_chart').get(0)); 
          chart.draw(data, options);

        });

        setInterval(function(){
        jsonData.ajax.reload();
        }, 2000);

      }

</script>

and also the PHP:

<?php

$servername = "localhost";
$username = "root";
$password = "raspberryblue";
$dbname = "test";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT * FROM sensortag3 ORDER BY id DESC LIMIT 3000";
$result = $conn->query($sql);

// All good?
if ( !$result ) {
  // Nope
  $message  = 'Invalid query: ' . mysqli_error() . "<br>";
  $message .= 'Whole query: ' . $sql;
  die( $message );
}

// Print out rows
$prefix = '';
echo "[
";
while ( $row = mysqli_fetch_assoc( $result ) ) {
  echo $prefix . " {
";
  echo '  "timestamp": "' . $row['timestamp'] . '",' . "
";
  echo '  "amb_temp": "' . $row['amb_temp'] . '",' . "
";
  echo '  "obj_temp": "' . $row['obj_temp'] . '",' . "
";
  echo '  "hum": "' . $row['hum'] . '"' . "
"; 
  echo " }";
  $prefix = ",
";
}
echo "
]";

$conn->close();
?>

There's no property named reload() in your script. That's why the console is showing undefined property reload(). So add the reload method inside ajax() for refreshing the data.