@MonkaS

Почему при выполнении запроса в php возникает ошибка?

Здравствуйте! При выполнении запроса выходит ошибка:

Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\OSPanel\domains\localhost\models\UserModel.php on line 53

Но, после ошибки все таки появляется слово "Success", но к сожалению, даже после него в БД пусто. :с

class UserModel extends Db {

	public $name, $surname, $avatar, $email, $password, $password_2, $gender;

	public function __construct() {
		$this->name = $_POST['name'];
		$this->surname = "Uzumaki";
		$this->avatar = "defautl.jpg";
		$this->email = $_POST['email'];
		$this->password = $_POST['password'];
		$this->password_2 = $_POST['password_2'];
		$this->gender = $_POST['gender'];
		
	}

	public function RegisterCheck() {
		
		$errors = array();

		if ( trim($this->name) == "" ) {
			$errors = "Name";
		}

		if ( trim($this->email) == "" ) {
			$errors = "E-mail";
		}

		if ( $this->password == "" ) {
			$errors = "Password";
		}

		if ( $this->password_2 != $this->password ) {
			$errors = "Password 2";
		}

		if ( trim($this->gender) == "" ) {
			$errors = "Gender";
		}

		if ( empty($errors) ) {

			$sql = $this->connect()->prepare("INSERT INTO `users` ('name', 'surname', 'email', 'password', 'avatar', 'gender') VALUES (:name, :surname, email, :password, :avatar, :gender)");
			$sql->bindParam(':name', $this->name, PDO::PARAM_STR);
			$sql->bindParam(':surname', $this->surname, PDO::PARAM_STR);
			$sql->bindParam(':email', $this->email, PDO::PARAM_STR);
			$sql->bindParam(':password', $this->password, PDO::PARAM_STR);
			$sql->bindParam(':avatar', $this->avatar, PDO::PARAM_STR);
			$sql->bindParam(':gender', $this->gender, PDO::PARAM_INT);
			$sql->execute();
			echo "Success";
		} else {
			echo $errors;
		}

	}
}
  • Вопрос задан
  • 141 просмотр
Решения вопроса 1
flapflapjack
@flapflapjack
Нажимательщик кнопков
Потому что прочитайте текст ошибки. Ваще влом в переводчик воткнуть что ли строчку?

spoiler
VALUES (:name, :surname, email, :password, :avatar, :gender)


где двоеточие перед email
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mosesfender
@mosesfender
Меланхолик, параноик, падал с коек
В values поправь email на :email
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Zelo Москва
от 130 000 руб.
Amigoweb Магнитогорск
от 40 000 до 70 000 руб.
АКМЭ сервис Санкт-Петербург
от 110 000 руб.