2

我有 node.js 的问题。

我使用dgram.createSocket('udp4'). 我解析数据并使用代码写入 mysql db(使用https://npmjs.org/package/mysql):

var result = {
                  CarID: "0094455",
                  Lat: 55.0405,
                  Lon: 82.981,
                  Time: 1373435075
};
connectionPool.getConnection(function(err, connection) {
     connection.query('SELECT * FROM lastPosition WHERE CarID = ? ORDER BY Time DESC LIMIT 1',[result.CarID], 
            function(err, rows, fields) {
          if (rows.length) {
            connection.query('UPDATE lastPosition SET ? WHERE CarID = ?', [result, result.CarID]);
          } else {
            connection.query('INSERT INTO lastPosition SET ?', result);
         }
        });
     connection.end();
});

问题是我在“lastPosition”表中看到键 CarID 的行重复,尽管这不包括代码。我哪里做错了?

4

1 回答 1

9

我用代码修复了它:

connectionPool.getConnection(function(err, connection) {
     connection.query('INSERT INTO `lastPosition` SET ? ON DUPLICATE KEY UPDATE Lat=VALUES(Lat), Lon=VALUES(Lon), Time=VALUES(Time)', result);
     connection.end();
    });
于 2013-07-10T16:43:10.463 回答