I've certainly introduced bugs into production code, but I can't say I've ever totally broken the production system. (I'm pretty sure I would remember that ;-)
I totally grokked our development system once. Copy pasted a delete from statement, went through and changed all the table names I wanted to delete, then went to lunch. Came back and totally forgot I needed to add a where clause to each of those. Just ran it.... But it was only a dev server. (It was a fun firedrill though).
I think 4 things went wrong for you:
1) Someone decided you didn't need a dev or staging system.
2) "needed to make a change, and so I had to do it to live code"
3) "I quickly tested my change and moved on"
4) You were allowed to do #2 and #3, because of #1.
If you skip the dev and staging systems, and go directly to production, then, yeah...your gonna break things there. It's not like you can write perfect code (see your question for proof, but don't worry, none of us can).
You use your dev system to do your quick test and move on (although as you get smarter, you might learn that your quick tests are costing you time down the road when you have to revisit code that is no longer fresh in your mind).
You use your staging system to verify you can deploy your changes without breaking things, and to test the new features/bug fixes. Somebody *else* tests your code on the staging system (because you suck at testing, but don't worry, most programmers do).
Then everyone involved gets together and reviews the results. Did the deploy work? Did the code work? What issues arose? Then you talk about what the rollback plan is. Did you have a rollback plan for today's change? I'm thinking not, or you might have used it. If you don't have a rollback plan, then you really don't have a deployment plan.
Use this to your advantage to argue for proper dev and staging machines. Yeah, they cost money. You need them (you just proved it). How much does it cost to have the entire system down, then to have bugs in the system once it is back up?