I (sorta) found the problem. Apparently, Tie::DBI can't handle ANY field that has a mixed case name.
It wasn't the DATE that was tripping it up. dateCreated and songsPlayed wouldn't be set at all, whereas nick, hostmask, level, credits, and moderates would.
changing them to songs_played and date_created fixed it.