无法在PDO中插入NULL日期

时间:2019-05-13 00:37:39

标签: php mysql pdo null

我有一个带有开始日期和结束日期的表格,因此可能需要开始日期,但是在项目结束之前,结束日期可以留为空白。

在phymyadmin中,我具有字段finish_date,设置为NULL =是,默认值为NULL。根据已阅读的内容,我现在应该能够将finish_date设置为null来更新表。 enter image description here

这是设置POST值的代码。如果日期无效,则将其设置为NULL。

if (validDate($_POST['finish_date'], $format = 'Y-m-d')){
    $finish_date = date('Y-m-d', strtotime(trim($_POST['finish_date'])));
  } else {
    $finish_date = NULL;
  }

正如您所见,这是我提交时遇到的错误,而不是NULL finish_date =“”

UPDATE projects
SET title='Love show  me how', project_status='Melody Idea', bpm='144', genre='New Age', release_genre='99', 
vocals='1', lyrics_written='0', voice_of='', start_date='2018-11-11', finish_date='', 
project_time='1hr 30 min', file_name='love show me how', mixed='0', mastered='0', mixed_by='Norman Love', 
mastered_by='', loudness_level='', release_date='1969-12-31', artwork_link='', 
audio_link='', length='', lyrics_link='', priority='7', notes='try and get to this one, has something', lyrics='Mostly completed
uplifting, inspirational', 
project_key='',featuring='', producers='' WHERE id='17 '
LIMIT 1
SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect date value: '' for column 'finish_date' at row 1

我似乎无法弄清楚。这里有很多问题类似的帖子,但是我尝试了所有解决方案,但似乎都没有。我似乎在做什么是正确的,应该可以工作。

更新:否,我的问题与空VS“”问题不同。我的问题是由于未使用准备好的语句引起的。显然,PDO处理NULL值到MYSQL的方式有所不同,这取决于您是否使用“ prepared”。使用它们解决了我的问题。

0 个答案:

没有答案