从刚插入的行中检索数据(MySql和Node.js)

11

如果我有以下查询:

var queryString = "INSERT INTO pid SET title = '" + randomTitle + "', poc = '" + random + "';"
connection.query(queryString, function(err, rows, fields) {

...(do something here)
});

在不执行新查询的情况下,我是否可以检索刚插入行的信息(在我的特定情况下,我想要自动生成的主键值)。

例如,我是否可以使用包含“query”对象的结构(如下所示),然后使用其中一个query.on回调来检索有关刚插入的行的信息?:

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?
    });


});

如果不是通过查询回调,还有其他方法吗?谢谢任何回复!

1个回答

11
根据文档,这是可能的。请注意insert查询的回调函数中没有rowsfields参数,只有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) {
    // ...
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接