Как исправить ошибку Column count doesn't match value count at row 1?

При отправке в базу данных mysql выдает ошибку Column count doesn't match value count at row 1.

Отправка идет через reg.php, который содержит в себе следующие
<html>
<head>
<link media="screen" href="../style/bootstrap.css" type="text/css" rel="stylesheet" />
<link media="screen" href="../style/bootstrap.min.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="../style/bootstrap.js"></script>
<script type="text/javascript" src="../style/bootstrap.min.js"></script>
<title>Регистрация</title>
</head>
<body style="width:900px;margin: 0 auto;">

<?php
define ("SQL_HOST","localhost");
define ("SQL_DB","");
define ("SQL_LOGIN","");
define ("SQL_PASSWORD","");

$db = mysql_connect(SQL_HOST,SQL_LOGIN,SQL_PASSWORD);
if(!$db){ exit("Ошибка соединения с базой данных ".mysql_error()); }
if(!mysql_select_db(SQL_DB,$db)){ exit("Нет такой базы данных ".mysql_error()); }
mysql_query("SET NAMES 'cp1251_general_ci'"); 
mysql_query("SET CHARACTER SET 'cp1251_general_ci'");
mysql_query("SET SESSION collation_connection = 'cp1251_general_ci'");
mysql_error($db);
?>

<?php 
print_r($_POST);
if (isset($_POST['reg'])) {

	$login = (isset($_POST['name'])) ? mysql_real_escape_string($_POST['name']) : '';
	$email = (isset($_POST['email'])) ? mysql_real_escape_string($_POST['email']) : '';
	$password = (isset($_POST['password'])) ? mysql_real_escape_string($_POST['password']) : '';
	$r_password = (isset($_POST['r_password'])) ? mysql_real_escape_string($_POST['r_password']) : '';
	
	$error	= false;
	$error_text = "";
	
	$validation_login = mysql_query("SELECT id FROM users WHERE name='$login' LIMIT 1"); //Проверяю наличие юзера
	$myrow_login = mysql_fetch_array($validation_login);
	
	$validation_email = mysql_query("SELECT id FROM users WHERE email='$email' LIMIT 1"); //Проверяю наличие email
	$myrow_email = mysql_fetch_array($validation_email);
	
	if (!empty($myrow_login['id'])) {
		$error = true;
		$error_text .= "<p>Логин $login занят!</p>";
    }
	
	if (!empty($myrow_email['id'])) {
		$error = true;
		$error_text .= "<p>Данный email уже на кого-то зарегестрирован!</p>";
    }
	
	if (empty($login)){
		$error = true;
		$error_text .= "<p>Вы не ввели логин</p>";
	}
	
	if(!preg_match("/[0-9a-z_]+@[0-9a-z_\-^\.]+\.[a-z]{2,3}/i", $email)){
		$error = true;
		$error_text .= "<p>Неверный формат email адреса</p>";
	}
	if(!preg_match("/[0-9a-z]{6,9}/i", $password)){
		$error = true;
		$error_text .= "<p>Неверный формат пароля!</p>";
	}
	if($password != $r_password) {
		$error = true;
		$error_text .= "Пароли не совпадают!";
	}
	
	if(!$error){
		$password = md5($password);
		$query = mysql_query("INSERT INTO users VALUES ('','$email', '$login', '$password')") or die (mysql_error());
		$sql = mysql_query($query);
		echo '<div class="bs-callout bs-callout-danger" style="text-align: center;padding-top: 250px;">
		<h4>Вы зарегестрированы!</h4>
		<p>Теперь вы можете авторизоватся.</p>
		</div>';
	}	
	else {			

	echo $error_text;

	}
	
}
else {
echo '
<form name = "myform" method="post" style="text-align:center;padding-top:250px;">

	 <label style="margin-bottom: 5px;display: block;">Логин:</label>
    <input type = "text" name = "name" style="margin-bottom: 15px;"  /> 

	

	<label style="margin-bottom: 5px;display: block;">Пароль:</label>
    <input type = "text" name = "password" style="margin-bottom: 15px;"  />

	

	<label style="margin-bottom: 5px;display: block;">Еще раз:</label>
	<input type = "text" name = "r_password" style="margin-bottom: 15px;"  />



	<label style="margin-bottom: 5px;display: block;">Ваш E-mail:</label>
	<input type = "text" name = "email"   /> <br/>


    <input style="margin-top:15px;" class="btn btn-success" type = "submit" value = "Зарегистрироватся" name="reg" />
</form>
';
}			
?>
</body>
</html>


В чем может быть проблема?
  • Вопрос задан
  • 22330 просмотров
Решения вопроса 1
shcherbanich
@shcherbanich
Программист
Вы хоть читайте ошибку. Все написано и так.
www.w3schools.com/sql/sql_insert.asp
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы