From 9594791782bb9adbf29018c444ea427fbaeb5ee4 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 17 Apr 2013 13:08:36 +0400 Subject: experimental singleton-based Db connection --- classes/db/pgsql.php | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 classes/db/pgsql.php (limited to 'classes/db/pgsql.php') diff --git a/classes/db/pgsql.php b/classes/db/pgsql.php new file mode 100644 index 000000000..87c2abefd --- /dev/null +++ b/classes/db/pgsql.php @@ -0,0 +1,73 @@ + 0) { + $string = "$string port=" . $port; + } + + $this->link = pg_connect($string); + + if (!$this->link) { + die("Unable to connect to database (as $user to $host, database $db):" . pg_last_error()); + } + + return $this->link; + } + + function escape_string($s, $strip_tags = true) { + if ($strip_tags) $s = strip_tags($s); + + return pg_escape_string($this->link, $s); + } + + function query($query, $die_on_error = true) { + $result = pg_query($this->link, $query); + + if (!$result) { + $query = htmlspecialchars($query); // just in case + if ($die_on_error) { + die("Query $query failed [$result]: " . ($this->link ? pg_last_error($this->link) : "No connection")); + } + } + return $result; + } + + function fetch_assoc($result) { + return pg_fetch_assoc($result); + } + + + function num_rows($result) { + return pg_num_rows($result); + } + + function fetch_result($result, $row, $param) { + return pg_fetch_result($result, $row, $param); + } + + function close() { + return pg_close($this->link); + } + + function affected_rows($result) { + return pg_affected_rows($result); + } + + function last_error() { + return pg_last_error($this->link); + } + +} +?> -- cgit v1.2.3