I recommend setting the database column type to that which most closely defines the type of data to be stored in it, thus I would recommend that you use a DATE type. This makes it easier to utilize the DBMS's built-in date/time functions.
In your PHP script, you can simply take the values from your form and build an appropriate date string. For instance, assume there are 3 fields in your form: "year", "month", and "day" and that the each return an integer value.
if(!checkdate($_POST['month'], $_POST['day'], $_POST['year']))
{
// invalid date value(s) received, so display error to user and have them retry
}
else
{
$date = date('Y-m-d', mktime(0, 0, 0, $_POST['month'], $_POST['day'], $_POST['year']));
// use $date as the value for your DB query
}