Nov 03 2006
MySQL, Strict Mode
In questo breve articolo vi segnalo una nuova funzionalità di mysql, disponibile dalla versione 5 in poi, che impatta su alcuni comportamenti di base del server mysql.
La configurazione in questione è quella riguardante lo strict mode.
Non mi soffermo su come sconfigurare, configurare etc… visto che la pagina del manuale di mysql è quanto di più preciso possibile:
http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html
Mi soffermo invece sugli aspetti problematici che comporta.
Aver attiva questa configurazione comporta in pratica la necessità di gestire al meglio i dati che vengono inviati al database come query SQL.
In sostanza, portando un paio di esempi accade che se viene impostato un campo di tipo DATE come NOT NULL, sarà necessario passare una data ASSOLUTAMENTE corretta e valida, altrimenti il database ritorna query failed.
Stessa cosa dicasi per campi varchar a lunghezza di (esempio) 50 caratteri, in cui se viene passata una stringa di 51 caratteri si ottiene un errore e non avviene il solito truncate della stringa che opera mysql alla lunghezza massima del campo stesso.
La mia personale opinione è che tale introduzione sicuramente aumenta il livello di sicurezza e di “pulizia” del codice ma indubbiamente oltre a comportare una maggiore difficoltà nella progettazione del codice dell’applicazione e dell’interfacciamento con il database, comporta anche la non completa funzionalità di moltissime vecchie applicazioni.
Ergo, consiglio l’attivazione su macchine dedicate su cui si realizzano nuove applicazioni ma sconsiglio l’utilizzo di strict mode su macchine che ospitano applicazioni vecchie o scritte da chissà chi (es. server di hosting etc…)
Ciao. Maxgrante
info[AT]massimo-caselli[DOT]com