Tag: postgres

PostgreSQL: eseguire ricerche su colonne di tipo array

20 luglio 2011Categoria:database

PostgreSQL permette di creare delle colonne come array di tipi di dati base. Praticamente è possibile inserire array di numeri integer o real,  testi, timestamp, boolean, ecc…
Ovviamente PostgreSQL mette a disposizione anche una serie di operatori ad hoc per la ricerca sugli array.

Oltre ai classici operatori di comparazione (uguale, maggiore, minore, …) ce ne sono 3 che possono essere molto utili: containsis contained by, overlap.

Prima di iniziare a vedere come funzionano creiamo una tabella di test molto semplice (una colonna con id autoincrementale ed una colonna di tipo array di smallint) e inseriamo alcuni dati:

Leggi tutto…

PHP: risolvere l’errore “Call to undefined function pg_query()”

15 luglio 2011Categoria:php

Se durante l’esecuzione di una query a un database Portgres appare l’errore

Fatal error: Call to undefined function pg_query()

bisogna aprire il file php.ini, abilitare l’estensione php_pgsql eliminando il punto e virgola all’inizio della riga

extension=php_pgsql.dll

Leggi tutto…

Postgres query: join tra tabelle di schemi diversi

9 aprile 2011Categoria:database

Per eseguire una JOIN tra due tabelle inserite in schemi diversi, come nell’esempio seguente:

SCHEMA "dati"
tabella: comments
	- comment_id
	- comment
	- user_id

SCHEMA "gestione"
tabella: users
	- user_id
	- username

è sufficiente aggiungere il nome dello schema prima del selettore in questo modo:

SELECT *
FROM “dati”.”comments” AS “Comment”
LEFT JOIN “gestione”.”users” AS “User” ON (“Comment”.”user_id” = “User”.”user_id”)
WHERE 1 = 1 LIMIT 1

Conversione degli array da Postgres a PHP e viceversa

5 aprile 2011Categoria:database | php

PostgreSQL permette di salvare i dati come array ( http://www.postgresql.org/docs/current/static/arrays.html ). La forma per il salvataggio di un array è la seguente:


{3,56,78,9,72}

Per poter gestire i risultati in PHP occorre eseguire una conversione. Per ogni campo della tabella contenente un array monodimensionale è possibile utilizzare la funzione str_getcsv() .
Al momento del salvataggio per eseguire l’operazione inversa, cioè la conversione da PHP a Postgres si può utilizzare la funzione implode (sempre nel caso di array monodimensionale).

Ecco come utilizzarle:
Leggi tutto…