#1136 - 列数与值计数不匹配?

时间:2016-04-18 03:35:38

标签: php mysql

 require_once('appvars.php');
require_once('connectvars.php');

 // Connect to the database
 $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
or die('Error connecting to MySQL server.'); 

 if (isset($_POST['submit'])) { //check for submit
// Grab the profile data from the POST
$username = mysqli_real_escape_string($dbc, trim($_POST['username']));

$password1 = mysqli_real_escape_string($dbc, trim($_POST['pass1']));
$password2 = mysqli_real_escape_string($dbc, trim($_POST['pass2'])); // validate user input 
if (!empty($username) && !empty($password1) && !empty($password2) && ($password1 == $password2)) {
  // Make sure someone isn't already registered using this username
  $query = "SELECT * FROM users WHERE username = '$username'";
  $data = mysqli_query($dbc, $query)
  or die('Error querying database.');
  if (mysqli_num_rows($data) == 0) { // new function num_row gives you the number of rows retrieved from the query. 
    // The username is unique, so insert the data into the database
 (   --> problem line ) $query = "INSERT INTO users (username,pass) VALUES ('$username', SHA1('$pass1'), NOW())"; // SHA1 is encrytion being implied to password. 
    mysqli_query($dbc, $query);

    // Confirm success with the user
    echo '<p>Your new account has been successfully created. You\'re now ready to <a href="login.php">log in</a>.</p>';

    mysqli_close($dbc);
    exit();// is a function to get out of the program. 
  }
  else {
    // An account already exists for this username, so display an error message
    echo '<p class="error">An account already exists for this username. Please use a different address.</p>';
    $username = "";
  }
} //end of validation, user passed the validation. 
else {
  echo '<p class="error">You must enter all of the sign-up data, including the desired password twice.</p>';
}
} // end of submit

 mysqli_close($dbc);

我知道这已被问到很多,但我无法找到答案。我收到了SQL错误 编号1136 - 列数与我的查询中的值计数不匹配: INSERT INTO用户(用户名,密码)VALUES(&#39; $ username&#39;,SHA1(&#39; $ pass1&#39;),NOW())

编号1136 - 列数与值计数不匹配,因为您可以看到列出所有值。有人可以帮助我吗

谢谢

1 个答案:

答案 0 :(得分:1)

你试图在两列中传递三个值,这就是为什么它会给你错误。像这样改变你的插入查询。

$sql=INSERT INTO users (username,pass,date) VALUES ('$username', SHA1('$pass1'), NOW());
相关问题