title: How can I uppercase a hashed md5 in my query?
body: <p>How can I uppercase a hashed md5 before it goes into the database?</p>
  
  <p>I tried the following:</p>
  
  <pre><code>connection.query("UPDATE penguins SET password = UPPER(password)");
  </code></pre>
  
  <p>This works, but it does not uppercase the user that just registered. It does uppercase every other md5 hash in the database.</p>
  
  <p>This is my INSERT query:</p>
  
  <pre><code>var insertQuery = "INSERT INTO penguins (moderator, registrationdate, inventory, email, password, username, nickname ) VALUES ('" + moderator + "','" + registrationdate + "','" + inventory + "','" + email +  "', + MD5('" + password + "'), '" + username + "', '"+username+"')";
  </code></pre>
  
  <p>This is my whole passport strategy:</p>
  
  <pre><code>var moment = require('moment');
  var datetime = moment().format('x')
  var mysql = require('mysql');
  var LocalStrategy = require('passport-local').Strategy;
  
  var connection = mysql.createConnection({
      host: 'localhost',
      user: 'root',
      password: 'root'
  });
  
  connection.query('USE kitsune');
  
  // expose this function to our app using module.exports
  module.exports = function(passport) {
  
      // =========================================================================
      // passport session setup ==================================================
      // =========================================================================
      // required for persistent login sessions
      // passport needs ability to serialize and unserialize users out of session
  
      // used to serialize the user for the session
      passport.serializeUser(function(user, done) {
          done(null, user.id);
      });
  
      // used to deserialize the user
      passport.deserializeUser(function(id, done) {
          connection.query("SELECT * FROM penguins WHERE id = " + id, function(err, rows) {
              done(err, rows[0]);
          });
      });
  
  
      // =========================================================================
      // LOCAL SIGNUP ============================================================
      // =========================================================================
      // we are using named strategies since we have one for login and one for signup
      // by default, if there was no name, it would just be called 'local'
  
         passport.use('local-signup', new LocalStrategy({
          // by default, local strategy uses username and password, we will override with email
          usernameField: 'username',
          passwordField: 'password',
          gameusernameField: 'username',
          nicknameField: 'nickname',
          passReqToCallback: true // allows us to pass back the entire request to the callback
      },
  
      function(req, username, password, done) {
  
          // here you read from req
          const email = req.body.email
          const nickname = req.body.nickname
          const inventory = '%1'; // This is what the user gets on register. You can set this to anything that you want like: %1%2%3%4%5%6%7%8%9%10%11%12%13%14%15%16
          const moderator = '0';
          const registrationdate = datetime
  
      passport.serializeUser(function(username, done) {
          done(null, username);
      });
  
          // find a user whose email is the same as the forms email
          // we are checking to see if the user trying to login already exists
          connection.query("SELECT * FROM `penguins` WHERE `username` = '" + username + "'", function(err, rows) {
              console.log(rows);
              console.log("above row object");
              if (err) return done(err);
              if (rows.length) {
                  return done(null, false, req.flash('signupMessage', 'That username is already taken.'));
              } else {
  
                  // if there is no user with that email
                  // create the user
                  var newUserMysql = new Object();
                  newUserMysql.registrationdate = registrationdate;
                  newUserMysql.moderator = moderator;
                  newUserMysql.inventory = inventory;
                  newUserMysql.email = email;
                  newUserMysql.password = password; // use the generateHash function in our user model
                  newUserMysql.username = username;
                  newUserMysql.nickname = nickname;
                  var insertQuery = "INSERT INTO penguins (moderator, registrationdate, inventory, email, password, username, nickname ) VALUES ('" + moderator + "','" + registrationdate + "','" + inventory + "','" + email +  "', + MD5('" + password + "'), '" + username + "', '"+username+"')";
                  console.log(insertQuery);
                  console.log('Query is rolling!');
                  connection.query(insertQuery, function(err, rows) {
                      newUserMysql.id = rows.insertId;
                      return done(null, newUserMysql);
                      });
  
              }
          });
  
      }));
  
  
  
  
  
      // =========================================================================
      // LOCAL LOGIN =============================================================
      // =========================================================================
      // we are using named strategies since we have one for login and one for signup
      // by default, if there was no name, it would just be called 'local'
  
      passport.use('local-login', new LocalStrategy({
          // by default, local strategy uses username and password, we will override with email
          usernameField: 'email',
          passwordField: 'password',
          passReqToCallback: true // allows us to pass back the entire request to the callback
      },
  
      function(req, email, password, username, nickname, done) { // callback with email and password from our form
          connection.query("SELECT * FROM `penguins` WHERE `username` = '" + username + "'", function(err, rows) {
              if (err) return done(err);
              if (!rows.length) {
                  return done(null, false, req.flash('loginMessage', 'No user found.')); // req.flash is the way to set flashdata using connect-flash
              }
  
              // if the user is found but the password is wrong
              if (!(rows[0].password == password)) return done(null, false, req.flash('loginMessage', 'Oops! Wrong password.')); // create the loginMessage and save it to session as flashdata
  
              // all is well, return successful user
              return done(null, rows[0]);
  
          });
  
  
  
      }));
  
  };
  </code></pre>