On Mon, 2010-01-18 at 10:32 -0500, John Corry wrote: > The field in the DB is defined as type date. > > I've had several event registrations for an upcoming event come through. THe > event date is '2010-01-27'. > > 2 of the 5 event registrations contained empty values for the date. > > wtf? > > On Mon, Jan 18, 2010 at 10:23 AM, John Corry <jcorry.li...@gmail.com> wrote: > > > I maintain a site that is generating some strange behavior... > > > > It's a custom built event registration app. > > > > Events have event_dates that are stored in the MySQL db. > > > > This code retrieves the event title and event date for display on the > > registration acknowledgment page: > > > > $q2 = "SELECT title, event_date, DATE_FORMAT(event_date, '%M %d, %Y') AS > > formatted_event_date FROM events WHERE id =" . $eid . ";"; > > $result = mysql_query($q2); > > if ($result) { > > $row = mysql_fetch_array($result); > > $title = $row['title']; > > > > if(strtotime($row['event_date'])) { > > $event_date = date("F m, Y", strtotime($row['event_date'])); > > } else { > > $event_date = $row['formatted_event_date']; > > } > > > > Sometimes, it doesn't work. > > > > Every 3rd or 4th registration notification email comes through with an > > empty value for event_date. > > > > There are no other references to the variable $event_date. > > > > It works most of the time. > > > > There's no pattern I can see. I even tried to force it to show a date by > > selecting a formatted date and displaying that if the original programmer's > > strtotime failed. > > > > Where do you look for help with intermittent failures of a date field in > > the DB? > > > > > > -- > > John Corry > > PHP developer - 3by400, Inc > > http://www.3by400.com > > > > > >
This sounds more like a problem with the code that is inserting the data than the code that is retrieving it. A database should just lose data randomly from fields unless you've got a really serious problem with your computer system. Are you sanitising the data that is being entered by people on the site? If you don't force them to enter a date, then they might not enter one at all, leading a null value or empty string to be entered into the date field instead of a valid date. Thanks, Ash http://www.ashleysheridan.co.uk