<?php /** * OpenSQLManager * * Free Database manager for Open Source Databases * * @author Timothy J. Warren * @copyright Copyright (c) 2012 * @link https://github.com/aviat4ion/OpenSQLManager * @license http://philsturgeon.co.uk/code/dbad-license */ // -------------------------------------------------------------------------- /** * PostgreSQL specifc class * * @extends DB_PDO */ class pgSQL extends DB_PDO { /** * Connect to a PosgreSQL database * * @param string $dsn * @param string $username=null * @param string $password=null * @param array $options=array() */ function __construct($dsn, $username=null, $password=null, $options=array()) { parent::__construct("pgsql:$dsn", $username, $password, $options); } /** * Empty a table * * @param string $table */ function truncate($table) { $sql = 'TRUNCATE "' . $table . '"'; $this->query($sql); } /** * Get the list of tables for the current db * * @return array */ function get_tables() { $sql = 'SELECT "tablename" FROM "pg_tables" WHERE "tablename" NOT LIKE pg\_% AND "tablename" NOT LIKE sql\%'; $res = $this->query($sql); $dbs = $res->fetchAll(PDO::FETCH_ASSOC); return $dbs; } /** * Get a list of views for the current db * * @return array */ function get_views() { $sql = 'SELECT "viewname" FROM "pg_views" WHERE viewname NOT LIKE pg\_%'; $res = $this->query($sql); $views = $res->fetchAll(PDO::FETCH_ASSOC); return $views; } } /** * PostgreSQL DB Structure manipulation class */ class pgSQL_manip extends pgSQL { function __construct($dsn, $username=null, $password=null, $options=array()) { parent::__construct($dsn, $username, $password, $options); } }