4

I am trying to run a multiple statement query to a MySQL database. I am using node-mysql and ExpressJS. I have enabled multiple statement queries through setting multipleStatements to true:

const connection = mysql.createPool(config.databaseOptions, {multipleStatements: true});

I have the following multiple statement query:

app.get('/information', urlencodedParser, function (req, res) {
        var mysql = require('./resources/mysqlConnection');

        var qry = "SELECT e.emp_id, company_id, age, country FROM employee as e INNER JOIN company as c ON e.emp_id = c.emp_id WHERE e.emp_id = ?;SELECT * from players as p INNER JOIN teams as t ON p.team_id = t.team_id WHERE country = ?";

        mysql.query(qry, ["E00909", "Japan"], function(err, rows) {
            if (err) throw err;
            console.log(rows);
            var emp_data = rows[0];
            var team_data = rows[1];
            res.render('info.ejs', {data : emp_data});
        });

});

However, when I run the server, I get the following error:

Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * from players as p INNE'

I have read other posts regarding multiple statement queries but the solution to all those cases was enabling multiple statement queries by setting multipleStatements to true. I have already done this so I'm not sure why am I getting this error. I think that the ["E00909", "Japan"] array in the code is the source of this issue but I am not sure how to resolve it. Further writing the array as ['E00909', 'Japan'] did not solve the problem. Any insights are appreciated.

2
  • have u tried add open and close bracket in the question mark like this (?) Commented Oct 16, 2019 at 10:27
  • I have tried that but I am still getting the error. Commented Oct 16, 2019 at 10:31

1 Answer 1

3

I would try setting the options in your config.databaseOptions object, e.g.

const config = {
    databaseOptions: {
        host: "some_host",
        user: "some_user",
        password: "some_pw",
        database: "some_db",
        multipleStatements: true
    }
}

Or just try:

config.databaseOptions.multipleStatements = true;

before creating the pool.

This resolves the error for me!

If I omit this line I get the same error as you:

ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT..
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.