Jump to content

Can't Pass NULL Date from form


bsanderson

Recommended Posts

I have a date field in a MySQL database which is set to accept NULLs. If I enter a record from phpMyAdmin and leave the date field blank, the record is entered properly. However, if I do the same thing from a form, I get an error that the date cannot be blank. It seems that I need to enter a NULL in the date field from the form rather that nothing. At the suggestion of someone on a newsgroup, I added the following line:

if ($date === '' or !isset($date)) $date='NULL';

This almost works, but the resultant statement contains the single quotation marks, which cause an error.

INSERT INTO jobs ( JobNumber, DateRcvd, DateEff ) VALUES ( '9999', 'NULL', 'NULL')

Does not work, but

INSERT INTO jobs ( JobNumber, DateRcvd, DateEff ) VALUES ( '9999', NULL, NULL)

does.

This is my actual query:

$query = "INSERT INTO jobs ( JobNumber, DateRcvd, DateEff, ) VALUES ( '$JobNumber','$DateRcvd','$DateEff',)";

If I remove the single quotes from the date values, the nulls are entered correctly but that only works if the field is null. If a date is entered, it doesn't work.

Ahy help will be greatly appreciated.
Link to comment
https://forums.phpfreaks.com/topic/4005-cant-pass-null-date-from-form/
Share on other sites

The easiest solution is simply to write your query as follows:

[code]$query = "INSERT INTO jobs ( JobNumber, DateRcvd, DateEff, ) VALUES ( '$JobNumber',$DateRcvd,$DateEff)";[/code]

And have PHP add the single quotes if necessary:

[code]$DateRcvd = ($DateRcvd === '' or !isset($DateRcvd)) ? "NULL" : "'$DateRcvd'";[/code]

Do the same for $DateEff, if necessary.

Make sense?

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.