Hi all,
I trying to change all my mysql inserts, update etc to transactions before going live with my app, I've had alot of trouble with connection already released before and to solve it I started using pool.query instead so that it handles the release itself.
pool.query( 'INSERT INTO X SET ?', [ X ], ( error, results ) => {
if(err){
reject(err);
}
if ( error ) {
reject( error );
} else if ( results[ 0 ] !== 'undefined' ) {
resolve( 'X added sucessfully' );
} else {
reject( error );
}
} );
I've tried to google it but cant find it anywhere, even in docs of Mysql, when you do a transaction, where in the code do I release the connection when done, or even better, can I use pool.query when doing a transaction?
the code below works but it sometimes give a connection already released error
connection.beginTransaction( function ( err ) {
if ( err ) {
reject( err);
}
connection.query( 'INSERT INTO X SET ?', [ X ], ( error, results ) => {
if(err){
reject(err);
}
if ( error ) {
reject( error );
} else if ( results[ 0 ] !== 'undefined' ) {
resolve( 'X added sucessfully' );
} else {
reject( error );
}
connection.commit( function ( commitErr ) {
if ( commitErr ) {
connection.rollback( function () {
reject(commitErr);
} );
}
connection.release();
} );
} );
} );