Привет, возникла курьезная проблема в моей простой формочке для регистрации, способ (если это так можно назвать) по проверке на существования в бд введеного логина/почты не оправдал себя, т.к. он попросту не работает. Не подскажете как реализовать эту проверку, желательно с помощью библ PDO, чтобы сохранять лаконичность или же укажите, пожалуйста, ошибку.
$sth = $conn->prepare("SELECT COUNT(*) as count FROM users WHERE mail =". $data['mail']);
$sth->execute();
$members = $sth->fetchColumn();
//if ($members=$conn->query("SELECT COUNT(*) as count FROM users WHERE mail =". $data['mail'])->fetchColumn()) {
if ($members) {
$data['mail'] = '##';
echo "privet";
throw new Exception('Пользватель с таким email уже существует');
}
$sth = $conn->prepare("SELECT COUNT(*) as count FROM users WHERE login =". $data['login']);
$sth->execute();
$members = $sth->fetchColumn();
if ($members) {
$data['login'] = '##';
throw new Exception('Пользватель с таким логином уже существует');
}
$sql = "INSERT INTO users ( login, mail, pass, proj ) VALUES ( :login, :mail, :pass, :proj )";
$st = $conn->prepare ( $sql );
$st->bindValue( ":login", $data['login'], PDO::PARAM_STR );
$st->bindValue( ":mail", $data['mail'], PDO::PARAM_STR );
$st->bindValue( ":pass", password_hash($data['pass'], PASSWORD_DEFAULT), PDO::PARAM_STR );
//$st->bindValue( ":id", $data['id'], PDO::PARAM_INT );
$st->bindValue(":proj", '##', PDO::PARAM_STR);
$st->execute();
$data['id'] = $conn->lastInsertId();
$user = new user($data);
$conn = null;
$_SESSION['user'] = $user;