Merci à tous de votre aide.
Mais cela ne réponds pas à ma question initiale : existe-t-il un moyen de paramétrer PDO pour que les vides soient NULL et non 0 ?
Sur la doc de setAttribute de pdo j'ai cela : "PDO::NULL_EMPTY_STRING : Une chaîne vide est convertie en NULL", pourquoi ça ne fonctionne pas ?