通过JavaScript中的PHP查询MySQL,时间间隔
Query MySQL via PHP inside JavaScript with time interval
基本上我想使用外部PHP脚本查询MySQL数据库。我希望每 2 秒调用一次此脚本。这个 2 秒的间隔是用 javascript(jquery, flot)启动的,如下所示:
<script type='text/javascript'>
var data = [];
var dataset;
var totalPoints = 50;
var updateInterval = 1000;
var now = new Date().getTime();
function GetData() {
data.shift();
while (data.length < totalPoints) {
var y;
$.ajax({
url: 'current_api.php',
success: function(currentValue){
y = currentValue;
console.log(y);
},
});
var temp = [now += updateInterval, y];
data.push(temp);
}
}
var options = {
...
}
$(document).ready(function () {
GetData();
dataset = [
{ label: "CURRENT READING", data: data }
];
$.plot($("#flot-line-chart"), dataset, options);
function update() {
GetData();
$.plot($("#flot-line-chart"), dataset, options)
setTimeout(update, updateInterval);
}
update();
});
</script>
目前,我在console.log(y);
获得NULL
值。我的处理MySQL查询的PHP脚本(current_api.php
)非常简单,如下所示:
<?php
require "dbCon.php"; // database credentials
$databaseName = "MAIN";
$tableName = "day"
// OPEN MYSQL DATABASE CONNECTION IN PHP
$dbs = mysql_select_db($databaseName, $con);
// FETCH DATA FROM MYSQL DATABASE
$sql = "SELECT value FROM $tableName ORDER BY id DESC LIMIT 1";
$result = mysql_query($sql);
header('Content-Type: application/json');
while ($row = mysql_fetch_assoc($result)) {
$currentValue = (int) round($row['value']);
}
echo json_encode($currentValue);
// CLOSE THE DB CONNECTION
mysql_close($con);
?>
我是 AJAX 的新手,不知道我正在尝试做的事情是否可行。有人可以帮助我调试为什么我会获得NULL
值吗?提前谢谢。
您在没有任何数据的情况下在 ajax 脚本中调用current_api.php
。所以没有查询字符串,没有$_GET['dbSelect']
,也没有数据库。所以你的 json 只包含一个未定义的变量,NULL
.
除此之外,这是不正确的,您不能使用转义函数来清理用户提供的表名,您需要根据白名单检查它。
知道了!
问题是变量y
和 URL 在 $.ajax
中的声明。这一切都感谢巴马尔和杰罗恩的提示!
JavaScript应该是:
<script type='text/javascript'>
var data = [];
var dataset;
var totalPoints = 50;
var updateInterval = 1000;
var now = new Date().getTime();
var y;
function GetData() {
data.shift();
while (data.length < totalPoints) {
$.ajax({
url: 'current_api.php?dbSelect=R9640E5F1E2',
success: function(currentValue) {
y = currentValue;
console.log(currentValue);
},
});
var temp = [now += updateInterval, y];
data.push(temp);
}
}
var options = {
...
}
$(document).ready(function () {
GetData();
dataset = [
{ label: "CURRENT READING", data: data }
];
$.plot($("#flot-line-chart"), dataset, options);
function update() {
GetData();
$.plot($("#flot-line-chart"), dataset, options)
setTimeout(update, updateInterval);
}
update();
});
</script>
其中R9640E5F1E2
是数据库;PHP保持原样。 :)现在。。转到另一个问题...查询脚本中的字符串。
$.ajax({
dataType: "json",//insert line: receive data from server to json
url: 'current_api.php?dbSelect=123', //a method
/* a method other
type:"GET",
data:{dbSelect:dbSelect},
url: 'current_api.php',
*/
success: function(currentValue){
y = currentValue[0];///edit code y = currentValue
console.log(y);
},
});
相关文章:
- Mysql日期时间字符串格式为angularjs中的可读日期
- mysql时间戳格式的Javascript regex不起作用
- Javascript 倒数计时器 - 客户端时间与 mySQL 时间
- JavaScript:获取MySQL时间戳和当前日期之间的天数差
- 如何制作倒计时计时器并在时间到时更新MySQL记录
- Ckeditor:如何在mysql中避免使用Ckeditor中的html标签来节省时间
- 从getTime()类型的日期获取日期和时间,以显示mySQL数据库中的日期
- 将 MYSQL 时间转换为 EST
- 来自 MySQL 数据库的翻转时钟时间值,刷新时不会重置
- AngularJS 之间的管理时间格式 - MySQL.
- JS - 在 mysql 中添加计时器作为毫秒的日期时间
- RethinkDB - 将导入的 MySQL 时间戳字符串转换为时间对象
- 通过JavaScript中的PHP查询MySQL,时间间隔
- PHP/MySQL 时间数据检索和创建倒计时
- 节点 - MySQL 查询,需要几分钟时间,在几分钟后重复自己,然后完成原始查询
- MySQL的时间验证范围
- Mysql在很短的时间内多次插入
- MySQL,根据MIN时间戳选择索引
- 格式化日期时间mysql数据类型的时间戳
- 不方便的工作时间mysql之间的报告时间