Trochę mi to zajęło zanim zrozumiałem co jest źle... w każdym razie działa

$sql = $this->pdo->prepare("SELECT * FROM user WHERE login=:login OR email=:email");
$sql->bindValue(':login',$login,PDO::PARAM_STR);
$sql->bindValue(':email',$email,PDO::PARAM_STR);
$sql->execute();
$sql->closeCursor();
A co z poprawnością klasy?
[edit: 15:47]Przeniosłem wyjątki poza klasę, wszystko działa.
Jednak prosiłbym o ogólną ocenę i uwagi dotyczące tej klasy.
index.php:
try {
require_once('./class/class.register.php');
$player = new Register($pdo);
$player->register_player($_POST['login'], $_POST['pass'], $_POST['repass'], $_POST['email']);
echo 'Użytkownik zarejestrowany poprawnie.<br />'; } catch(Exception $exception) {
echo 'Wystąpił błąd: '. $exception->getMessage() .'<br />'; }
class.register.php:
class Register {
private $pdo;
function __construct($pdo) {
$this->pdo = $pdo;
}
private function istnieje($login, $email) {
$sql = $this->pdo->prepare("SELECT * FROM user WHERE login=:login OR email=:email");
$sql->bindValue(':login',$login,PDO::PARAM_STR);
$sql->bindValue(':email',$email,PDO::PARAM_STR);
$sql->execute();
$sql->closeCursor();
if($sql->rowCount() == 0) {
return false;
} else {
return true;
}
}
function register_player($login, $pass, $repass, $email) {
throw new Exception('Login za krótki.');
} elseif(md5($pass) != md5($repass)) { throw new Exception('Wpisane hasła nie zgadzają się.');
} elseif(!preg_match("/^[a-zA-Z0-9.-]+@[a-zA_Z0-9.-]+[a-zA-Z0-9.-]+$/",$email)) { throw new Exception('Błędny adres email.');
} elseif($this->istnieje($login, $email)) {
throw new Exception('Podany login lub email znajduje się już w bazie.');
}
$new = $this->pdo->prepare("INSERT INTO user (login, haslo, email) VALUES (:login, :haslo, :email)");
$new->bindValue(':login',$login,PDO::PARAM_STR);
$new->bindValue(':haslo',md5($pass),PDO
::PARAM_STR); $new->bindValue(':email',$email,PDO::PARAM_STR);
$new->execute();
$new->closeCursor();
return true;
}
}