summaryrefslogtreecommitdiff
path: root/libs/SimpleValidator/Validators/Exists.php
diff options
context:
space:
mode:
Diffstat (limited to 'libs/SimpleValidator/Validators/Exists.php')
-rw-r--r--libs/SimpleValidator/Validators/Exists.php38
1 files changed, 38 insertions, 0 deletions
diff --git a/libs/SimpleValidator/Validators/Exists.php b/libs/SimpleValidator/Validators/Exists.php
new file mode 100644
index 00000000..1998e673
--- /dev/null
+++ b/libs/SimpleValidator/Validators/Exists.php
@@ -0,0 +1,38 @@
+<?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;
+ }
+}