Ajax从mySQL中提取数据

时间:2015-06-17 14:32:37

标签: javascript php jquery mysql ajax

我目前正在尝试为我们的实验室建立一个简单的温度监控系统。它通过网络界面进行控制,该界面绘制了Dygraph中的温度与时间数据。温度数据被写入mySQL DB。我试图添加另一个输入字段,可用于选择要绘制的特定时间范围。 我目前正在使用jQuery日期框来选择似乎工作正常的时间窗口。我正在向查询数据库的PHP脚本发送AJAX请求。 PHP脚本只输出内部服务器错误(500),而不是向我显示正确的数据点。当PHP的$ _POST部分和jQuery脚本的数据部分被删除时,该脚本可以正常工作。

我最近的JS代码是:

$("#UpdateGraph").on("click", function(){
    var startDate = $("#datestart").val();
    var endDate = $("#datestop").val();
    $.ajax({
    url: "updateGraph.php",
    data: {start : startDate,
           stop : endDate},
    datatype: "json",
    type: "POST",
    success: function(data) { DyGraph(data); }
    });
});

jQuery代码位于$(document).ready()环境中。 相应的PHP脚本如下所示:

  <?php
 $conn = new PDO("mysql:host=localhost;dbname=temperature", "USERNAME", "PASSWORD");
 $results = array();

 $startDate = $_POST['start'];
 $stopDate = $_POST['stop']: 

 $query = "SELECT atime,temperature FROM temp WHERE atime BETWEEN '"  . $startDate . "' AND '"  . $stopDate . "';" ;
 $stmt = $conn->prepare($query);
 $stmt->execute();
 while($result = $stmt->fetch(PDO::FETCH_ASSOC)){
  $results[] = $result['atime'].",".$result['temperature'];
 }
 print_r(json_encode(implode("\n+",$results)));
?>

有什么建议我做错了吗?非常感谢!

1 个答案:

答案 0 :(得分:0)

我想,您的错误来源是行$stopDate = $_POST['stop']:中的语法错误 该行的末尾有一个冒号。你应该把它改成分号。

服务器上的php脚本中的语法错误将在http客户端中显示错误500。我建议你使用linter来避免这种错误。所有受欢迎的编辑都有插件。