Home   Informatica   PHP   Step4: Prepariamo ed eseguiamo query sul DB

Step4: Prepariamo ed eseguiamo query sul DB

Scritto da sergio il 01/10/2010 08:47:35

Dopo aver visto la connessione al database, vediamo ora come poterlo interrogare creando dei nuovi metodi sulla classe database per averlo poi disponibili ovunque.

Il primo metodo lo abbiamo chiamato "setValue" e come parametro ha un valore. Lo utilizzeremo nella costruzione delle query che necessitano di parametri (come ad esempio nella condizione WHERE). Questo metodo aggiungera', se e' necessario, i famosi caratteri di escape in una stringa che ad esempio contiene apici. Il nostro metodo controllera' anche se l'impostazione del  php.ini ha gia' previsto l'aggiunta del carattere di escape per evitare di inserirlo doppio.

...

   function setValue($value)
   {
      // eventuali escape nei valori
      if (!get_magic_quotes_gpc())
         $value = mysql_real_escape_string($value);
      return $value;
   }

...
Il secondo metodo esegue la query sul database e ritorna TRUE se e' stata eseguita correttamente o FALSE e un messaggio se eseguita con errori. Ovviamente il messaggio generico di errore e' consigliato se ci troviamo in ambienti produttivi, mentre se siamo in ambiente di test possiamo sostituirlo con il messaggio originale del mysql (mysql_error()).

...

   function query($sql)
   {
      global $errorMsg;

      try
      {
         if (!$this->result = mysql_query($sql, $this->conn))
            throw new Exception("Errore nella query SQL.");
         return true;
      }
      catch (Exception $ex)
      {
         $errorMsg = $ex->getMessage();
         return false;
      }
   }
...
L'ultimo metodo che vediamo oggi serve solo per le query di interrogazione (le SELECT) e prende l'oggetto "risultato" e lo trasforma in una array associativo bidimensionale per essere scorso e leggerne i dati.

...

   function row()
   {
      return mysql_fetch_array($this->result);
   }
...
Per capire meglio come usare questi metodi (se volete provare aggiungeteli al file database.class.php) nel prossimo step inizieremo ad applicarli alla classe menu che gestisce l'intera navigazione.
Per fare questo dovremo creare delle tabelle su un DB mysql e inizieremo da 2 tabelle, una contenente le categorie di menu e una contenente le voci di menu.

Alla prossima!

Ultimo aggiornamento 01/11/2010 11:00:00