Fom the MySQL 5.x docs:
in reply to DBI mysql truncation best practice?
If you assign a value to a CHAR or VARCHAR column that exceeds the column's maximum length, the value is truncated to fit. If the truncated characters are not spaces, a warning is generated. For truncation of non-space characters, you can cause an error to occur (rather than a warning) and suppress insertion of the value by using strict SQL mode. See Section 5.2.5, “The Server SQL Mode”. (11.4.1. The CHAR and VARCHAR Types)
"If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law