Here's a quick one for anyone who has a query that just won't work (insert and update in particular). Mysql reserves certain words for its own uses. One such word (and the reason for this post) is 'desc'. An oft used abbreviation for 'description', 'desc' recently caused me three hours of confusing, frustrating code rewrites and function restructuring. Turns out naming a column 'desc' is a right reserved for mysql, and if you try it mysql will not tell you about it, just imply a syntax error. Mysql hogs 'desc' and other common names. Seems a bit selfish to me.
Just out of interest, here's a list of mysql reserved words that you should keep handy in case of an insolvable refusal of your query.
I fucking hate mysql.