4

有什么方法可以停止对 mysql 表的 javascript 查询并等到插入下一行?

例如使用函数:

var query = connection.query('SELECT * FROM table');

我想读取表中的所有行,显示它们并等待插入下一行,读取插入的行并等待插入其他行,依此类推...

基本上它应该读取每次其他表从 PHP 或其他脚本(触发事件)更新时更新的表。

我在javascript mysql查询中找不到有关光标滑动的任何信息也许有一些关于它的文章?

4

1 回答 1

2

你可以像这样轮询答案,因为我从来没有使用过 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 它以触发更新。

希望有帮助

于 2012-11-23T02:36:52.187 回答