运行代码示例后,它失败了,不是因为第二个查询中的MySQL变量。此代码示例适用于我:
connection.beginTransaction(err => {
if (err) { throw err; }
connection.query('INSERT INTO user (id, username) VALUES(?, ?)', [12, 'name'], (err, results) => {
if (err) {
return connection.rollback(function() {
throw error;
});
}
connection.query('SELECT @user_id:=userID FROM user WHERE username = ?', ['name'], (err, results) => {
if (err) {
return connection.rollback(function() {
throw error;
});
}
connection.query('INSERT INTO authentication (id, password) VALUES (@user_id, ?), ['userpassword'], (err, results) => {
if (err) {
return connection.rollback(function() {
throw error;
});
}
connection.commit(err => {
if (err) {
return connection.rollback(function() {
throw err;
});
}
console.log('success!');
});
});
});
});
});