有什么方法可以停止对 mysql 表的 javascript 查询并等到插入下一行?
例如使用函数:
var query = connection.query('SELECT * FROM table');
我想读取表中的所有行,显示它们并等待插入下一行,读取插入的行并等待插入其他行,依此类推...
基本上它应该读取每次其他表从 PHP 或其他脚本(触发事件)更新时更新的表。
我在javascript mysql查询中找不到有关光标滑动的任何信息也许有一些关于它的文章?
有什么方法可以停止对 mysql 表的 javascript 查询并等到插入下一行?
例如使用函数:
var query = connection.query('SELECT * FROM table');
我想读取表中的所有行,显示它们并等待插入下一行,读取插入的行并等待插入其他行,依此类推...
基本上它应该读取每次其他表从 PHP 或其他脚本(触发事件)更新时更新的表。
我在javascript mysql查询中找不到有关光标滑动的任何信息也许有一些关于它的文章?
你可以像这样轮询答案,因为我从来没有使用过 mysql 库作为 node 的 api。
行计数间隔
var connection = ..., lastCount;
funciton mysqlPoll() {
var query = connection.query('SELECT count(field) as count FROM table');
query.exec(function(result) {
if (result.count != lastCount) {
//Select all the rows here using offset to skip the already processes
//process them
lastCount = result.count;
}
});
}
setInterval(mysqlPoll, 500); //every 1/2 second
如果您有一个主要的自动递增键间隔,那就更好了
var connection = ...,
lastCount = 0;
funciton mysqlPoll() {
var query = connection.query('SELECT * FROM table WHERE primaryId > '+lastCount);
query.exec(function(result) {
if (result.count != lastCount) {
//Select all the rows here using offset to skip the already processes
//process them
lastCount = lastResultsPrimaryId;
}
});
}
setInterval(mysqlPoll, 500); //every 1/2 second
另一种选择是在 node.js 上打开一个套接字(net、http 等)并从 php 脚本 ping 它以触发更新。
希望有帮助