php写mysql数据,日期类型如何避免空值啊?

php往mysql里写数据,日期类型,默认是允许NULL的
insert into my_test(my_date) VALUES (null) 这个可以成功写入
insert into my_test(my_date) VALUES ('') 这个无法写入

执行语句之前可以判断$my_date 如果为空,则赋值"NULL",或NULL时,
执行到insert into my_test(my_date) VALUES ('".$my_date."') 语句时,就会变成'',导致写入错误,怎么才能保证$my_date在语句执行时变成不带括号的null?

直接foreach判断完后在拼接语句,如下:

$mydate = '';
$insert_data = array(
    'my_date' => $mydate
);
foreach($insert_data as $key =>  $val) {
    if($val === "") {
        $insert_data[$key] = 'NULL';
    }
}

$sql = '';
$keys = array_keys($insert_data);
$vals = array_values($insert_data);
$sql = sprintf(
        "INSERT INTO my_test (%s) VALUES (%s)",
        implode(',', array_keys($insert_data)), '"' . implode('","', $vals) . '"'
    );
echo $sql;

insert into my_test(my_date) VALUES ($my_date) ;
这样写试试?