Per quello che ricordo, nel caso che hai illustrato tu, a seconda di SQL_MODE si ottengono risultati diversi. Nel tuo caso SQL identifica che c'è un problema, segnala un WARNING (che puoi visualizzare o nella gestione del DB oppure com "echo mysql_error()" in PHP), ma esegue ugualmente l'inserimento lasciando i campi vuoi.

Dovresti trovare il giusto settaggio per SQL_MODE, prova a cerca on-line. Al momento non ricordo quale sia...