从刚插入的行检索数据(MySql和Node.js)
如果我有一个像这样的查询:
var queryString = "INSERT INTO pid SET title = '" + randomTitle + "', poc = '" + random + "';" connection.query(queryString, function(err, rows, fields) { ...(do something here) });
,有没有一种方法,我可以检索刚刚插入的行的信息,而不执行新的查询(在我的具体情况下,我想要自动生成的主键值)。
例如,我可以使用“查询”对象(下面)的构造,然后可能使用其中一个query.oncallback来检索刚刚插入的行的信息?
var query = connection.query(queryString, function(err, rows, fields) { query.on('fields', function(fields) { ... get the field information? }); query.on('result', function(row) { .. get the field information? }); });
如果不是通过查询callback,有没有另一种方式? 谢谢你的回应!
根据文件是可以的。 注意插入查询的callback函数没有rows
和fields
,只有result
参数:
connection.query(queryString, function(err, result) { if (err) { // handle error } console.log(result.insertId); // prints inserted id }
你的查询也容易sql注入。 它应该是这样的:
var queryString = "INSERT INTO pid SET title = ?, poc = ?"; connection.query(queryString, [randomTitle, random], function(err, result) { // ... }