db = pg_connect( ' host='.$config['psql_host']. ' port='.$config['psql_port']. ' dbname='.$config['psql_db']. ' user='.$config['psql_username']. ' password='.$config['psql_password']. '') or apiresult(['error' => 'Could not connect to postgres: '.pg_last_error()], 500); } public function is_ok() { return $this->db !== null; } public function escape($str) { return pg_escape_string($this->db, $str); } public function query($sql) { $result = pg_query($this->db, $sql); if (!$result) apiresult('The postgres query has failed: '.pg_last_error()); return $result; } public function fetch($sql, $cache=null, $only_cached=false) { $sql = trim($sql); cronjob_db_create__check_cachecfg($GLOBALS['ap_software'], $GLOBALS['ap_instance'], $sql, $cache); $cache_key = $GLOBALS['ap_software'].$GLOBALS['ap_instance'].$sql; if ($cache !== null) { $cached = content_cache__get($cache_key); if ($cached !== null) return $cached; } if ($only_cached) return 'not_cached'; $result = $this->query($sql); $data = pg_fetch_assoc($result); if ($cache !== null) content_cache__put($cache_key, $cache, $data); return $data; } public function fetch_all($sql, $cache=null, $only_cached=false) { $sql = trim($sql); cronjob_db_create__check_cachecfg($GLOBALS['ap_software'], $GLOBALS['ap_instance'], $sql, $cache); $cache_key = $GLOBALS['ap_software'].$GLOBALS['ap_instance'].$sql; if ($cache !== null) { $cached = content_cache__get($cache_key); if ($cached !== null) return $cached; } if ($only_cached) return 'not_cached'; $data = []; $result = $this->query($sql); while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) { $data []= $line; } pg_free_result($result); if ($cache !== null) content_cache__put($cache_key, $cache, $data); return $data; } public function close($result=null) { if ($result !== null) pg_free_result($result); pg_close($this->db); } }