Follow me on Twitter Facebook Flickr Subscribe Feeds
 

February 12th, 2010  |  mysql 2 Comments »

MySQL: cos’è un trigger e come funziona

Spesso abbiamo il bisogno di monitorare in qualche modo le tabelle nel nostro database e di eseguire delle operazioni al compimento di una determinata operazione su di esse.

I trigger nei linguaggi SQL sono una sorta di procedure che vengono eseguite al verificarsi di un determinato evento. Di per sè sono uno strumento potentissimo a disposizione e, se ben usati, riducono di molto le richieste al server ed evitano l’utilizzo di crontab residenti sul server.

Come in quasi tutti i DBMS, anche MySQL possiede delle librerie per la gestione dei trigger. Bisogna però stare molto attenti al loro utilizzo e soprattutto alla versione di MySQL che si utilizza. In versioni antecedenti alla 5.0.10 sono presenti molti bug che potrebbero causare non pochi problemi.

Read more →

November 4th, 2009  |  Web Designing, mysql No Comments »

Importare dati database vecchio o popolarlo ex novo?

In questi giorni sto per pubblicare un nuovo progetto di un’agenzia immobiliare. Si è giunti al momento in cui bisogna popolare il database con i dati reali e son sorti alcuni problemi con il committente nonostante gli accordi preliminari.

L’agenzia possiede già un sito web pubblicato alcuni anni fa e quindi un database già esistente. Dai colloqui preliminari con il cliente abbiamo stabilito che ogni singola tabella del database già esistente doveva essere riprogettata in quanto possedeva troppi campi in meno a quelli che il cliente richiede nel nuovo.

Fin qui nessun problema, nuova progettazione del database, testing effettuato con il cliente senza problemi. Risultato: il progetto piace al cliente.

Ora però arrivano i problemi. Nel momento in cui il cliente è venuto a sapere che dovrà reinserire a mano tutti gli immobili già presenti nel vecchio database si è risentito affermando di non avere tempo a disposizione per effettuare tale operazione.

Su questo punto pongo l’articolo di oggi.

La nuova tabella immobili contiene circa 15 campi in più rispetto alla precedente, oltre a collegamenti con altre tabelle che il db precedente non aveva. Ovviamente alcuni dei 15 campi non possono contenere valore NULL e quindi hanno bisogno di essere popolati con dati che non sono presenti nel database vecchio.

Secondo voi in questi casi quale è la strada più giusta?

Riprogettare il database in maniera che i vecchi immobili contengano solo i dati contenuti nel vecchio database, lasciando che i nuovi campi vengano riempiti con i nuovi immobili e quindi importare il database vecchio oppure cercare di far ragionare il cliente cercando di fargli capire il problema?

In questo caso sono solo un centinaio di entry quindi non un lavoro impossibile da realizzare ma, supponendo di avere un progetto molto più grande con migliai di valori, secondo voi quale è la strada più indicata?

Sicuramente giunto a questo punto posso trarre la conclusione di aver commesso un grave errore in fase di analisi del progetto web. Ora o per colpa mia che mi sono spiegato male con il cliente, o a causa del cliente che magari ha fatto “orecchie da mercante”, il problema resta. Nei prossimi progetti quale sarebbe secondo voi la scelta iniziale di progettazione?

October 30th, 2009  |  mysql, php No Comments »

PHP: Guida pratica all’estensione mysqli – parte 2

Eccoci alla seconda puntata delle Guida all’estensione mysqli. La scorsa volta mi sono occupato di presentare la libreria e di mostrare come essa si connette al database. Oggi invece mi occuperò di concludere la guida con le funzioni per effettuare le query e per il fetch dei risultati.

Come sempre le query si suddividono in due categorie: query che interrogano il database e query che lo modificano.

Sostanzialmente le funzioni sono le stesse con la differenza che la prima categoria richiede l’elaborazione dei dati ricevuti e quindi qualche semplice funzione aggiuntiva. Vediamo il codice nel dettaglio.

Read more →

October 23rd, 2009  |  mysql, php No Comments »

PHP: Guida pratica all’estensione mysqli – parte 1

Il MySQL è sicuramente il DBMS più utilizzato al momento. I suoi punti di forza sono tanti e, uno dei più importanti è la velocità di esecuzione delle query. La coppia PHP-MySQL vanta ormai un monopolio nel web che va avanti da anni e, effettuare una connessione tra i due linguaggi è sicuramente qualcosa di molto semplice.

Un codice come il seguente realizza una semplice connessione e una query al database restituendo i valori di cui abbiamo bisogno.

//creazione connessione e scelta db
$conn = mysql_connect('host','user','pass')
        or die('Impossibile stabilire una connessione');
mysql_select_db('db');

//esecuzione query
$query = "SELECT * FROM table";
$result = mysql_query($query, $conn);

//stampa risultati
while ($row = mysql_fetch_array($result)) {
 echo $row['field'];
}

//chiusura connessione
mysql_close($conn);

Fin qui nulla di nuovo. Bene o male tutti noi abbiamo avuto almeno una volta a che fare con queste poche righe di codice.

Molti però non conoscono un’estensione PHP, chiamata mysqli, che possiede numerosi vantaggi rispetto alla più famosa è diffusa mysql. Read more →

July 9th, 2009  |  mysql, php No Comments »

Backup automatico di Database MySQL

Qualsiasi web designer o programmatore almeno una volta nella vita avrà avuto la sfortuna di perdere un proprio lavoro a causa di un inconveniente imparato a proprie spese l’importanza di effettuare un regolare backup dei propri progetti.
Da oggi questo problema sarà solo un ricordo grazie a Backup2Mail, un semplice script gratuito in PHP che consente di effettuare automaticamente il backup di un database MySQL ed inviarlo nella propria casella di posta elettronica.
Per l’esecuzione dello script è necessario PHP 4.1+ insieme a cron jobs o scheduled task interface.

Lo script è scaricabile al seguente link: Backup2Mail

Via | MarkDvl

Foto | Flickr