Here's three questions for you to consider...
- what does using whatever tool you are using to inspect your database return when you execute "select NULL"? (ie: is your tool giving you missleading info)
- what exactly does your table definition look like? ... do any of the columns have default values declared (ie: did someone declare the fields to have default values of the string "null" when they ment null)
- what do you get when you bind undef to an insert into a numeric column? (ie: if you still find that you have a string value of "null" in a numeric column, something is seriously screwed up in your database or your driver)