title: nodejs mysql module error while inserting row
body: <p>I am having some issue while trying to insert a row into my database.</p>
  
  <p>Here is the structure of my table :</p>
  
  <pre><code>mysql&gt; describe emprunt;
  +------------------+---------+------+-----+---------+----------------+
  | Field            | Type    | Null | Key | Default | Extra          |
  +------------------+---------+------+-----+---------+----------------+
  | idEmprunt        | int(11) | NO   | PRI | NULL    | auto_increment |
  | Joueur_idEmprunt | int(11) | NO   |     | NULL    |                |
  | valeur_empruntee | float   | NO   |     | NULL    |                |
  | duree_emprunt    | int(11) | NO   |     | NULL    |                |
  | jour_emprunt     | int(3)  | NO   |     | NULL    |                |
  | mois_emprunt     | int(3)  | NO   |     | NULL    |                |
  +------------------+---------+------+-----+---------+----------------+
  </code></pre>
  
  <p>What my program must do is : 
  The client open an HTML page in which there is a button. When clicked, data is sent to the server to add a row in my table.</p>
  
  <p>I give you the whole code so that you may understand, but you should focus on the last lines, the function setEmprunt(..), because it is where the error comes from.</p>
  
  <pre><code>var server = require('http').createServer(function(req, res){
          res.end('chargement effectué');
      });
  server.listen(8080);    
  
  var io = require('socket.io').listen(server);
  
  var mysql = require('mysql');
  //using a pool to manage multi users queries
  var pool = mysql.createPool({
      host     : 'localhost',
      user     : 'NoNeedToKnowThat', 
      password : 'Neither', 
      database : 'test' //
  });
  
  //A client open the HTML page
  io.sockets.on('connection', function (socket) {
      console.log('Client !!');
  
  
  
      //===================================================
      // Client clicks the button and sends 2, 7000, 15
      //===================================================
      socket.on('setEmprunt', function (aIdJoueur, aSomme, aDuree) {
  
          pool.getConnection(function(err, connection) {
  
              setEmprunt(connection, aIdJoueur, aSomme, aDuree, function(err){
                  if(err) {
                      console.log("error in setEmprunt : "+ err);
                      throw err;
                  }
                  else
                      console.log("callback of setEmprunt");
              });
              // And done with the connection.
              connection.release();
  
          });
  
      }); 
  
  
  function setEmprunt(aConnection, aIdJoueur, aSomme, aDuree, aCallback){
      var maintenant= new Date(),
          jourEmprunt = maintenant.getDate(),
          moisEmprunt = maintenant.getMonth();
      rowToBeInserted = { Joueur_idEmprunt : aIdJoueur, valeur_empruntee : aSomme, duree_emprunt : aDuree, jour_emprunt : jourEmprunt, mois_emprunt : moisEmprunt };
      console.log("set emprunt de : " + rowToBeInserted);
  
  
  //There is the problem line
      aConnection.query('INSERT INTO emprunt VALUES ?', rowToBeInserted, aCallback);
  
  
  }
  </code></pre>
  
  <p>And there is my result :</p>
  
  <pre><code>C:\Users\QuentinB\Developpement&gt;node serveur.js
     info  - socket.io started
     info  - handshake authorized ZIH1OSAUuRGHz8G9hCfc
  Client !!
  set emprunt de : [object Object]
  error in setEmprunt : 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 syn
  tax to use near '`Joueur_idEmprunt` = 2, `valeur_empruntee` = 7000, `duree_emprunt` = 15, `jour_e' at line 1
  
  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 '`Joueur_
  idEmprunt` = 2, `valeur_empruntee` = 7000, `duree_emprunt` = 15, `jour_e' at line 1
      at Query.Sequence._packetToError (C:\Users\QuentinB\Developpement\giserv5\node_modules\mysql\lib\protocol\sequences\Sequence.js:30:14)
  </code></pre>
  
  <p>I know this is the last line of my code which is blocking, because I tried to replace it by :</p>
  
  <pre><code>aConnection.query('INSERT INTO emprunt(Joueur_idEmprunt, valeur_empruntee, duree_emprunt, jour_emprunt, mois_emprunt) VALUES('+aIdJoueur+','+aSomme+','+aDuree+','+jourEmprunt+','+moisEmprunt+');', aCallback);
  </code></pre>
  
  <p>and it worked.
  I would like to understand why aConnection.query('INSERT INTO emprunt VALUES ?', rowToBeInserted, aCallback) is not working.</p>
  
  <p>Thank you for your help.</p>