|
|
<?php |
|
|
|
|
|
namespace SimpleValidator\Validators; |
|
|
|
|
|
use PDO; |
|
|
|
|
|
class Exists extends Base |
|
|
{ |
|
|
private $pdo; |
|
|
private $key; |
|
|
private $table; |
|
|
|
|
|
public function __construct($field, $error_message, PDO $pdo, $table, $key = '') |
|
|
{ |
|
|
parent::__construct($field, $error_message); |
|
|
|
|
|
$this->pdo = $pdo; |
|
|
$this->table = $table; |
|
|
$this->key = $key; |
|
|
} |
|
|
|
|
|
|
|
|
public function execute(array $data) |
|
|
{ |
|
|
if (! $this->isFieldNotEmpty($data)) { |
|
|
return true; |
|
|
} |
|
|
|
|
|
if ($this->key === '') { |
|
|
$this->key = $this->field; |
|
|
} |
|
|
|
|
|
$rq = $this->pdo->prepare('SELECT 1 FROM '.$this->table.' WHERE '.$this->key.'=?'); |
|
|
$rq->execute(array($data[$this->field])); |
|
|
|
|
|
return $rq->fetchColumn() == 1; |
|
|
} |
|
|
} |
|
|
|