Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // не уверен что это полноценный паттерн Dependency Injection но очень похоже
- class DB
- {
- protected $host = 'localhost';
- protected $db = 'name'; // имя базы
- protected $charset = 'utf8';
- protected $user = 'user'; // имя юзера
- protected $pass = 'qwertyu'; // пароль юзера
- public function __construct() {
- $dsn = "mysql:host=$this->host;dbname=$this->db;charset=$this->charset";
- $opt = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
- PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
- );
- try {$this->DBconnect = new PDO($dsn, $this->user, $this->pass, $opt);}
- catch( PDOException $Exception ) {}
- }
- }
- // проверка на наличие e-mail в базе 0 - нет, иначе да
- public function checkDoubleMail($table, $column, $email) {
- // Проверим есть ли такой юзер
- $auth = $this->DBconnect->prepare('SELECT COUNT(*) FROM `'.$table.'` WHERE `'.$column.'`=:mail');
- $auth->bindParam(':'.$column, $email, PDO::PARAM_STR);
- $auth->execute();
- $Count = $auth->fetchAll();
- return intval(implode('', $Count[0]));
- }
- }
- class Validator
- {
- public function checkUnique($table, $column, $email)
- {
- $count = (new DB())->checkDoubleMail($table, $column, $email);
- return $count;
- }
- }
- $val = new Validator();
- $check = $val->checkUnique('users', 'mail', 'mail@yandex.ru');
- echo '<pre>'; var_dump($check); echo '</pre>';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement