I would HIGHLY recommend staying away from storing any data in the database that is credit card related (mainly the credit card number). From a security standpoint, a thug can't get much if there's not much there to get.
IF you're still stuck on the idea of storing the credit card numbers in a database, then:
The card numbers must be encrypted IN the database.
Any where you go to access those cards must be using an SSL connection. So you'd need to use SSL to get the card number from the user, but you'll need SSL to display the card number for when you punch it in.
Emailing is just as bad, if not worse. There's no SSL involved when the email gets transferred. So you'd definitely need to encrypt the card numbers.
But its a LOT easier to (and less stressful) to leave the credit card numbers out of the database (the trick here is your code HAS to be rock solid). This means you'd have to use a payment gateway (its really not that difficult to do as long as you can read directions and specifications). Ideally, you'll want to handle the credit card number as quickly and as little as possible.
The payment gateway will have their approval process as well, but just follow their directions and its not rough.
You may want to look into mod10 number checking. This is what the credit card companies use to build and validate a card number (its sort of like a CRC check). You'll also want to look at the number qualifications for the cards you'll be accepting. If Visa's numbers always start with 4, then have your code check if the card number starts with 4 and the user selected Visa as their payment option (this is one additional form of credit card fraud checking - it can be defeated, but its one additional hurdle for someone to work around). Also checking what is a valid length for a particular flavor of a card can be very helpful as well. It verifies the user entered a properly formed CC number and it wasn't a data entry issue. In your live code, you'll probably want to have your code check for the test card numbers and make sure someone doesn't enter one of those (usually the payment gateway is good enough to bounce those but the more checking you do, the safer you'll be from fraud).