title: nodejs:mysql not able to access global variable inside connection query callback
body: <p>Below is my code</p>
  
  <p>I am sending data object from client side javascript to this function 
  data prints its values </p>
  
  <p>inside socket.on</p>
  
  <p>and</p>
  
  <p>inside socket.on -> connection.query(sql,[], function(err,rows){data prints here})</p>
  
  <p>and </p>
  
  <p>inside socket.on -> connection.query(sql,[], function(err,rows){data prints here})-> connection.query(sql,[], function(err,rows){data prints undefined})</p>
  
  <pre><code>socket.on('sendmessage', function (data) {
      var data = JSON.parse(data);
      console.log(data);
      if (data.cuserid != '' &amp;&amp; users_connected.hasOwnProperty(data.cuserid) &amp;&amp; fs.existsSync(users_connected[data.cuserid]['sessionfile'])) {
          sql = "update hired set echat='Y' where eid=? and jobid=? and jid=? and status in ('given','finished')";
          connection.query(sql, [data.cuserid, data.jobid, data.userid], function (err, rows) {/*console.log(this.sql);*/ });
          sql = "insert into chat_messages(fromid,toid,jobid,message,received_date) select ?,?,?,?,NOW() from hired where echat='Y' and jchat='Y' and jobid=? and jid in(?,?) and eid in(?,?) and status in ('given','finished')";
          connection.query(sql, [data.cuserid, data.userid, data.jobid, data.message, data.jobid, data.cuserid, data.userid, data.cuserid, data.userid], function (err, rows) {
              console.log("dataretrieved : ", data); if (!err &amp;&amp; users_connected[data.userid] != '') {
                  socid = users_connected[data.userid]['socket'];
                  sql = "select id as userid,username, userphoto from us_signup where id=?";
                  connection.query(sql, [data.userid], function (err, rows) {
                      console.log(data);  //prints undefined                                   
                      if (!err) {
                          var data = {
                              'userphoto': rows[0].userphoto,
                              'username': rows[0].username,
                              'userid': rows[0].userid,
                              'cuserid': data.cuserid,
                              'message': data.message,
                              'jobid': data.jobid
                          }
                          io.to(socid).emit('message', JSON.stringify(data));
                      }
                  })
              }
          });
      }
  
  })
  </code></pre>