From 035294798d891d1d2447a79586401b097d0c2ae4 Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Sat, 5 Jul 2014 16:32:24 -0300 Subject: Add Postgresql support --- vendor/PicoDb/Database.php | 5 +++ vendor/PicoDb/Drivers/Postgres.php | 73 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 vendor/PicoDb/Drivers/Postgres.php (limited to 'vendor') diff --git a/vendor/PicoDb/Database.php b/vendor/PicoDb/Database.php index 9201e9d2..4d7b7031 100644 --- a/vendor/PicoDb/Database.php +++ b/vendor/PicoDb/Database.php @@ -27,6 +27,11 @@ class Database $this->pdo = new Mysql($settings); break; + case 'postgres': + require_once __DIR__.'/Drivers/Postgres.php'; + $this->pdo = new Postgres($settings); + break; + default: throw new \LogicException('This database driver is not supported.'); } diff --git a/vendor/PicoDb/Drivers/Postgres.php b/vendor/PicoDb/Drivers/Postgres.php new file mode 100644 index 00000000..641727f3 --- /dev/null +++ b/vendor/PicoDb/Drivers/Postgres.php @@ -0,0 +1,73 @@ +schema_table = $settings['schema_table']; + } + } + + + public function getSchemaVersion() + { + $this->exec("CREATE TABLE IF NOT EXISTS ".$this->schema_table." (version SMALLINT DEFAULT 0)"); + + $rq = $this->prepare('SELECT version FROM '.$this->schema_table.''); + $rq->execute(); + $result = $rq->fetch(\PDO::FETCH_ASSOC); + + if (isset($result['version'])) { + return (int) $result['version']; + } + else { + $this->exec('INSERT INTO '.$this->schema_table.' VALUES(0)'); + } + + return 0; + } + + + public function setSchemaVersion($version) + { + $rq = $this->prepare('UPDATE '.$this->schema_table.' SET version=?'); + $rq->execute(array($version)); + } + + + public function getLastId() + { + $rq = $this->prepare('SELECT LASTVAL()'); + $rq->execute(); + return $rq->fetchColumn(); + } + + + public function escapeIdentifier($value) + { + return $value; + } +} \ No newline at end of file -- cgit v1.2.3