What I did ...
function RegistrationUser () { $date_registration = date("dmY"); $sql_ver = $this->db->prepare("select login, email from users where login = :login and email = :email"); $sql_ver->execute(array('login' => $this->newParamArray[5], 'email' => $this->newParamArray[2])); $sql_ver->setFetchMode(PDO::FETCH_ASSOC); $user_date = $sql_ver->fetch(); if ($user_date['login'] == $this->newParamArray[5]){ echo"Π’Π°ΠΊΠΎΠΉ login ΡΠΆΠ΅ Π΅ΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅"; } else { if ($user_date['email'] == $this->newParamArray[2]) { echo"Π’Π°ΠΊΠΎΠΉ email ΡΠΆΠ΅ Π΅ΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅"; } else { $sql_registration = $this->db->prepare("insert users (name, lastname, login, email, sex, birthday, pass, main_photo, status, lang, data_registr) value ( :name, :lastname, :login, :email, :sex, :birthday, :pass, :main_photo, :status, :lang, :data_registr )"); $sql_registration->execute(array( 'name' => $this->newParamArray[0], 'lastname' => $this->newParamArray[1], 'login' => $this->newParamArray[5], 'email' => $this->newParamArray[2], 'sex' => $this->newParamArray[3], 'birthday' => $this->newParamArray[4], 'pass' => md5($this->newParamArray[6]), 'main_photo' => '', 'status' => 0, 'lang' => substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2), 'data_registr' => $date_registration )); if(!$sql_registration) { echo "ΠΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°, ΡΠΌΠΎΡΡΠΈ ΡΠ°ΠΉΠ» ΠΎΡΠΈΠ±ΠΎΠΊ."; file_put_contents('system/PDOErrors.txt', mysql_error().'<br />', FILE_APPEND); } else { $_SESSION['us_login'] = $this->newParamArray[5]; $_SESSION['us_pass'] = $this->newParamArray[6]; $_SESSION['us_lang'] = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); //header("Location: /index.php"); echo "session dates: login:".$_SESSION['us_login']." pass: ".$_SESSION['us_pass']."<br />array dates: login:".$this->newParamArray[5]." pass: ".$this->newParamArray[6]."<br />base dates: email:".$user_date['email']; } } } } Checks only the login to the mail does not reach stops seeing the array with the data from the database, I do not understand why if they declare before the cycle!