title: Error: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1
body: <p>I'm getting this error after trying to insert values into a MySQL table.</p>
  
  <blockquote>
    <p>Insert value list does not match column list: 1136 Column count doesn't match value count at row 1</p>
  </blockquote>
  
  <p>TABLE:</p>
  
  <pre><code>CREATE TABLE `users` (
    `user_id` int(11) NOT NULL AUTO_INCREMENT,
    `username` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    `password` char(64) COLLATE utf8_unicode_ci NOT NULL,
    `first_name` char(255) COLLATE utf8_unicode_ci NOT NULL,
    `last_name` char(255) COLLATE utf8_unicode_ci NOT NULL,
    `salt` char(16) COLLATE utf8_unicode_ci NOT NULL,
    `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    PRIMARY KEY (`user_id`),
    UNIQUE KEY `username` (`username`),
    UNIQUE KEY `email` (`email`)
  ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1;
  </code></pre>
  
  <p>PHP:</p>
  
  <pre><code>$query = "
          INSERT INTO 
              users (username, password, first_name, last_name, salt, email) 
              VALUES (:username, :password, :first_name, :last_name :salt, :email) ";
  
      $query_params = array( 
          ':username' =&gt; $_POST['username'], 
          ':password' =&gt; $password, 
          ':first_name' =&gt; $_POST['first_name'],
          ':last_name' =&gt; $_POST['last_name'],
          ':salt' =&gt; $salt, 
          ':email' =&gt; $_POST['email'] 
      );
  
      try { 
          // Execute the query to insert user into table
          $statement = $database-&gt;prepare($query); 
          $result = $statement-&gt;execute($query_params); 
      } catch(PDOException $ex) {
          $response["success"] = 0;
          $response["message"] = "Insert failed".$ex-&gt;getMessage();
          die(json_encode($response));
      }
  </code></pre>
  
  <p>I don't understand the problem and would appreciate any help. Thanks in advance.</p>