Вход Регистрация
Файл: upload-2031-rs1/system/library/db/postgre.php
Строк: 51
<?php
namespace DB;
final class 
Postgre {
    private 
$link;

    public function 
__construct($hostname, $username, $password, $database, $port = '5432') {
        if (!
$this->link = pg_connect('hostname=' . $hostname . ' port=' . $port .  ' username=' . $username . ' password='    . $password . ' database=' . $database)) {
            
trigger_error('Error: Could not make a database link using ' . $username . '@' . $hostname);
            exit();
        }

        if (!
mysql_select_db($database, $this->link)) {
            
trigger_error('Error: Could not connect to database ' . $database);
            exit();
        }

        
pg_query($this->link, "SET CLIENT_ENCODING TO 'UTF8'");
    }

    public function 
query($sql) {
        
$resource = pg_query($this->link, $sql);

        if (
$resource) {
            if (
is_resource($resource)) {
                
$i = 0;

                
$data = array();

                while (
$result = pg_fetch_assoc($resource)) {
                    
$data[$i] = $result;

                    
$i++;
                }

                
pg_free_result($resource);

                
$query = new stdClass();
                
$query->row = isset($data[0]) ? $data[0] : array();
                
$query->rows = $data;
                
$query->num_rows = $i;

                unset(
$data);

                return 
$query;
            } else {
                return 
true;
            }
        } else {
            
trigger_error('Error: ' . pg_result_error($this->link) . '<br />' . $sql);
            exit();
        }
    }

    public function 
escape($value) {
        return 
pg_escape_string($this->link, $value);
    }

    public function 
countAffected() {
        return 
pg_affected_rows($this->link);
    }

    public function 
getLastId() {
        
$query = $this->query("SELECT LASTVAL() AS `id`");

        return 
$query->row['id'];
    }

    public function 
__destruct() {
        
pg_close($this->link);
    }
}
Онлайн: 3
Реклама