Home   Informatica   PHP   Step3: la connessione al database

Step3: la connessione al database

Scritto da sergio il 29/09/2010 13:41:46

Per dialogare con il database svilupperemo una classe dentro la quale prevedere tutte le operazioni che ci occorrono. Oggi vedremo la connessione, ma dentro a questa classe ci saranno poi anche i metodi per preparare le query, eseguirle, estrarne i risultati, ecc.

Creiamo quindi la classe "database" inserita in un file che chiameremo database.class.php e che inseriremo nella cartella "classes" della nostra struttura.


<?
class database
{
   var $host;
   var $dbName;
   var $user;
   var $password;
   var $conn;
   var $result;


   function __construct($host, $user, $password, $dbName)
   {
      global $errorMsg;

      $this->host = $host;
      $this->user = $user;
      $this->password = $password;
      $this->dbName = $dbName;

      try
      {
         // connessione
         if (!$this->conn = mysql_connect($this->host, $this->user, $this->password))
            throw new Exception("Errore di connessione al database!", 0);
        
         // selezione db
         if (!mysql_select_db($this->dbName))
            throw new Exception("Errore nella selezione del database!", 1);
      }
      catch (Exception $ex)
      {
         $errorMsg = $ex->getMessage();
      }
   }

}
?>
La nostra classe possiede alcuni attributi. I primi 4 corrispondono ai parametri necessari per effettuare una connessione al database (e corrispondono anche alle 4 variabili che avevamo previsto nel file di configurazione, ricordate?).
$conn contiene l'oggetto "connessione" e $result contiene l'oggetto "risultato di una query".

Vediamo ora solo la connessione che abbiamo inserito nel costruttore della classe database.
Essa prende i 4 parametri, host, user, password e nome del database che arriveranno come parametro nella costruzione dell'oggetto che inseriremo nella index.php.
Usando le funzioni native per il mysql (ma ne esistono anche per altri database) e una struttura try ... catch ... possiamo creare una funzione di connessione che preveda anche la gestione di eventuali problemi.
Questa sara' una costante nella costruzione del nostro framework.
Cosi' se il database per qualche motivo non e' raggiungibile ci verra' restituito un messaggio umanamente comprensibile ("Errore di connessione al database") e non messaggi tecnici in inglese mandati dall'interprete php di apache...
Ovviamente invece di cablare a questo livello il messaggio lo si puo' includere in file (magari uno per lingua se vogliamo un sistema multilingue) e riportare qui il nome della definizione, ma questa storia magari la vediamo piu' avanti.

Nella nostra index.php inseriremo quindi l'istanza dell'oggetto database:

...

// connessione al db
$db = new database($host, $user, $password, $dbName);

...
E lo metteremo dopo il recupero delle variabili action e function e prima dell'inizio dell'output.

Per vedere la messaggistica di errore possiamo inserire, ad esempio nel template del footer visto allo step 2 queste righe, in testa a quanto scritto precedentemente:


   <div id="statusbar">
      <!-- Messaggistica -->
      <?=$errorMsg;?>
   </div>
...
Cosi' scegliamo di avere un barra in fondo alla pagina (poi la customizzeremo con il foglio di stile) che ci dara' tutti i messaggi che prevederemo.

Beh siamo gia' a buon punto... al prossimo step vedremo i metodi per preparare ed eseguire una query, preludio necessario per passare poi alla classe menu che gestisce un po' tutta la navigazione dell'applicazione.

Alla prossima!

Ultimo aggiornamento 11/01/2020 10:06:08