class PgSql

Classe Pubblica senza dipendenze.

Attenzione: assicurarsi che pgsql sia installato e funzionante.

I Metodi:

  1. query()
  2. fetch()
  3. result()
  4. error_db() (metodo privato)
  5. n_rows()
  6. get_last_id()
  7. disconnect()
  8. escape_string()
  9. truncate()
  10. drop()

La classe lavora quasi esattamente come la classe DB con solo qualche piccolissima differenza.

Per inizializzare la classe, dovremmo attivarla all'interno della nostra view eliminando il simbolo di cancelletto (#):

$GLOBALS["Rgl"] = new $nameClass(
    array(
        "Crypto", // gestione Criptazione
        "Session", // gestione delle sessioni
        "Language", // gestione delle lingue
        "Avvisi", // gestore avvisi e alert
        "Str", // trattamento delle stringhe
        "DTime", // trattamento delle date
        "VerifySend", // verifica i dati in invio
        #"SendMail", // invia email in vari formati
        #"DB", // gestione del DB in PDO comprende (MySql, SqLite, PostgreSql)
        #"MySql", // gestione del DB Mysql
        #"SqLite", // gestione del DB SqLite
        "PgSql", // gestione del DB PstgreSql
        "BreadC", // gestione briciole di pane
        #"UploadFile", // Upload File & image
        "LogIn", // gestione Login
        #"Files", // gestione dei file fisici
        #"Restful" // ,
    )
);

Fatto questo creiamo una tabella in un nostro database PostgreSql.
Nell'esempio utilizzeremo la tabella login vista in precedenza e trasportata su un database psql.

Ora dovremmo configurare la connessione tramite il file ./Config/config.php

# DB -> POSTGRESQL ---------
'_TIPO_PG_' => 'PGSQL',
'_HOST_PG_' => 'localhost',
'_USER_PG_' => 'postgres',
'_PASS_PG_' => '',
'_NAME_PG_' => 'test',
'_PORT_PG_' => '5432',

Non staremo a rispiegare tutti i metodi dato che sono simili ad i metodi utilizzati dal blocco DB.

Faremo solo qualche esempio pratico.

Spostiamoci all'interno della view test, sblocchiamo la classe PgSql e testiamo:

function view_page(){
        $sql = "INSERT INTO rgl_logins(
                email, password, active, cat, level, name, surname
            ) VALUES (
                'nostramail@testx.mm',
                '".Crypto::gen_pass('1234567890')."',
                '1',
                'admin',
                '10',
                'Leo',
                'Lo Tito'
            )";
        PgSql::query($sql);
        ### stampo la pagina dei contenuti
        KuiperBelt::get_template(
            'test.php',
            $GLOBALS["Rgl"],
            array(
                'utente'=>$utente,
            )
        );
    }

Controlliamo all'interno della tabella se la riga è stata inserita.

Ora proviamo a leggere il file:

function view_page(){
        $sql = "SELECT * FROM rgl_logins WHERE email = 'nostramail@testx.mm'";
        PgSql::query($sql);
        $R = PgSql::fetch('assoc');
        print_r($R);
        ### stampo la pagina dei contenuti
        KuiperBelt::get_template(
            'test.php',
            $GLOBALS["Rgl"],
            array(
                'utente'=>$utente,
            )
        );
    }

Proviamo ora a leggere tutti i dati contenuti all'interno della tabella:

function view_page(){
        $sql = "SELECT * FROM rgl_logins";
        PgSql::query($sql);
        $R = PgSql::result();
        print_r($R);
        ### stampo la pagina dei contenuti
        KuiperBelt::get_template(
            'test.php',
            $GLOBALS["Rgl"],
            array(
                'utente'=>$utente,
            )
        );
    }

Contiamo il numero di righe presenti:

function view_page(){
        $sql = "SELECT * FROM rgl_logins";
        PgSql::query($sql);
        $n = PgSql::n_rows();
        echo $n;
        ### stampo la pagina dei contenuti
        KuiperBelt::get_template(
            'test.php',
            $GLOBALS["Rgl"],
            array(
                'utente'=>$utente,
            )
        );
    }

Diversa invece la richiesta per l'ultimo id inserito:

get_last_id():

In questo caso dovremmo cambiare anche il contenuto della query inserendo la richiesta specifica per ricevere l'ultimo id inserito. Facciamo un esempio:

function view_page(){
        $sql = "INSERT INTO rgl_logins(
                email, password, active, cat, level, name, surname
            ) VALUES (
                'nostramail@testx.mm',
                '".Crypto::gen_pass('1234567890')."',
                '1',
                'admin',
                '10',
                'Leo',
                'Lo Tito'
            ) RETURNING id;";
        PgSql::query($sql);
        $last_id = PgSql::result();
        print_r($last_id);
        ### stampo la pagina dei contenuti
        KuiperBelt::get_template(
            'test.php',
            $GLOBALS["Rgl"],
            array(
                'utente'=>$utente,
            )
        );
    }

Potrebbe tornare utile, disconnettere forzatamente la connessione a pgsql.

Ci viene in aiuto il metodo:

disconnect():

PgSql::disconnect();

Altro metodo, esistente i questa classe è l'escape string. Ripulisce la nostra query da tutti quei caratteri che potrebbero causare un errore durante la query.

escape_string($str):

Attenzione: Questo metodo, non dovrà essere utilizzato in concomitanza con il metodo Str::str_clear().

$nome = PgSql::escape_string("Alfredo");
$cognome = PgSql::escape_string("D'Antonio");
PgSql::query(...);

 


Lista dei Blocchi