Login
Libri
Home

Connettere il proprio Database

Share

Ci sono due vie per connettere un Database:

Connessione Automatica

L' "auto connessione" caricherà ed istanzierà la classe database ogni volta che una pagina verrà richiamata. Per abilitare l'"auto connession" basta aggiungere la parola database alla libreria dell'array, come indicato nel file seguente:


application/config/autoload.php

Connessione Manuale

Se la connessione al database è richiesta solo da alcune pagine è possibile connettere il proprio database aggiungendo la seguente riga di codice all'interno della funzione che la richiede, o nel costruttore della classe affinché sia disponibile alla classe intera.


$this->load->database();

Se la funzione precedente non contiene nessuna informazione come primo parametro, di default si collegherà al primo gruppo specificato nel proprio file di configurazione del database. Per la maggior parte delle persone questo è ll metodo preferito ed adottato.

Parametri disponibili

  1. Valori di connessione al database, passati attraverso o un array oppure una stringa DSN.
  2. TRUE/FALSE (booleano). Restituisce l'ID della connessione (vedere successivamente la sezione Connettersi a Più Database).
  3. TRUE/FALSE (booleano). Che abilità la classe Active Record. Di default impostato su TRUE.

Connessione Manuale ad un Database

Il primo parametro di questa funzione può opzionalmente essere usato per specifcare un particolare gruppo database del proprio file di configurazione, oppure è possibile passare i valori di connessione qual'ora il database non fosse presente nel file di configurazione. Per esempio:

Per scegliere uno specifico gruppo dal proprio file di configurazione si procederà così:


$this->load->database('group_name');

Dove group_name è il nome della gruppo di connessione dal file di configurazione.

Per connettersi manualmente ad una databse è sufficiente passare un array di valori:


$config['hostname'] = "localhost";
$config['username'] = "myusername";
$config['password'] = "mypassword";
$config['database'] = "mydatabase";
$config['dbdriver'] = "mysql";
$config['dbprefix'] = "";
$config['pconnect'] = FALSE;
$config['db_debug'] = TRUE;
$config['cache_on'] = FALSE;
$config['cachedir'] = "";
$config['char_set'] = "utf8";
$config['dbcollat'] = "utf8_general_ci";

$this->load->database($config);

Per la spiegazione sul significato di ciascun valore si rimanda alla pagina di configurazione.

Oppure è possibile passare direttamente il valore come Data Source Name. Il DSNs deve rispettare questa struttura:


$dsn = 'dbdriver://username:password@hostname/database';

$this->load->database($dsn);

Aggiungendo i parametri come query string è possibile sovrascrivere valori di configurazione quando ci si connette con una stringa DSN.


$dsn = 'dbdriver://username:password@hostname/database?char_set=utf8&dbcollat=utf8_general_ci&cache_on=true&cachedir=/path/to/cache';

$this->load->database($dsn);

Connessione a Più Databases

Se occorre connettersi a più di un database simultaneamente, è possibile farlo nel seguete modo:


$DB1 = $this->load->database('group_one', TRUE);
$DB2 = $this->load->database('group_two', TRUE); 

Nota: Cambirare le parole "group_one" e "group_two" con gli specifici name delle connessioni (oppure passare i valori di connessione come indicato precedentemente).

Configurando il secondo parametro a TRUE(booleano) la funzione restituirà l'oggetto database.

Quando ci si collega in questo modo, si potrà utilizzare il nome dell'oggetto database per inviare comandi invece che utilizzare la notazione standard utilizzata in questa guida. In altre parole, invece di inviare comandi con:

$this->db->query();
$this->db->result();
etc...

Si potà utilizzare la seguente notazione:

$DB1->query();
$DB1->result();
etc...

Riconnettere / Mantenere Attiva una Connessione

Per evitare che la connessione al server del database vada in timeout, a causa di operzione complesse in PHP (elaborare una immagine, per esempio), si potrebbe prendere in considerazione la possibilità di pingare il server usando il methodo reconnect() prima di inviare ulteriori queries, il quale permetterà di mantenere la connessione attiva, oppure provvederà a ristabilirla.


$this->db->reconnect();

Chiusura Manuale della connessione

Nonostante CodeIgniter si prenda cura di chiudere la connessione al databse, dà anche la possibilità di fare tale operazione manualmente grazie al seguente comando.


$this->db->close();

Ultimo aggiornamento ( Mercoledì 09 Marzo 2011 05:33 )

Twitter
13 Apr 2011 Funzioni Helper per Query http://t.co/085eCA4 via @AddThis
27 Mar 2011 Mostrare i Risultati di una Query http://t.co/R7NwbK4 via @AddThis
18 Mar 2011 Connettere il proprio Database http://t.co/Ah15SOl via @AddThis
2 Mar 2011 Connettere il proprio Database http://t.co/62wzbn7 via @AddThis
19 Feb 2011 Classe DataBase http://t.co/zoJE4T9 via @AddThis
3 Feb 2011 Rilasciata la versione 2.0.0 http://t.co/vo2O531 via @AddThis
13 Jan 2011 Traduzione Manuale CodeIgniter: Classe Config http://t.co/1dfOxmp via @AddThis
1 Jan 2011 Traduzione: Classe Carrello Della Spesa http://t.co/4jCVLY2 via @AddThis
17 Dec 2010 Traduzione Documentazione: Classe Calendar http://t.co/VN44J9j via @AddThis
7 Dec 2010 Rilasciata la versione 1.7.3 di CodeIgniter http://t.co/KCcTkGc via @AddThis
5 Dec 2010 Codeigniter si fa in due http://t.co/yNZSypY via @AddThis
4 Dec 2010 Traduzione:Le Classi/La Classe Benchmarking (www.codeigniteritalia.it/le-classi/45-la...enchmarking)
29 Nov 2010 Traduzione:Argomenti Generali/Scrivre la Documentazione(www.codeigniteritalia.it/argomenti-gener...umentazione)
29 Nov 2010 Traduzione: Argomenti Generali/Stile e Sintassi (www.codeigniteritalia.it/argomenti-gener...-e-sintassi)
18 Nov 2010 Traduzione:Argomenti Generali/Sicurezza(www.codeigniteritalia.it/argomenti-gener...2-sicurezza)
12 Nov 2010 Traduzione:Argomenti Generali/Sintassi[...](www.codeigniteritalia.it/argomenti-gener...er-le-viste)
11 Nov 2010 Traduzione:Argomenti Generali/Gestire le proprie[...](www.codeigniteritalia.it/argomenti-gener...pplicazioni)
7 Nov 2010 Traduzione:Argomenti Generali/Profilare le[...] (www.codeigniteritalia.it/argomenti-gener...pplicazioni)
Libri