我搜索了该网站,虽然我找到了类似的问题和答案,但我无法找到答案。经过4个小时的搜索,我决定硬着头皮问这个问题。
我的表单中有 4 个不需要的日期字段。如果其中一个字段有条目,我希望它在数据库中输入一个日期,如果有任何一个字段留空,我希望它为空。
我有一个 if 语句,它检查值是否为空,如果是$value = null
,则用于$value = date("Y-m-d",strtotime($_post['value']))
将其转换为日期,这很好用。
问题出在我的查询中。如果我使用'$value',它将正确插入日期但不会插入空值,因为使用'null'会使sql认为它是一个字符串。如果我只使用 $value,则 null 插入就好了,但日期为 0000-00-00。
任何建议将不胜感激
感谢您到目前为止的建议...
允许为空,这是我的脚本...
if(empty($_POST['fp32_original_install_date'])){
$fp32_install = NULL;
}else{
$fp32_install = date("Y-m-d",strtotime($_POST['fp32_original_install_date']));
}
$sql = "INSERT INTO accounts_cstm (id_c, support_c, install_date_c, sware_renewal_date_c, product_key_c, account_status_c, fp32_support_type_c, fp32_support_renewal_date_c, fp32_original_install_date_c) VALUES ('$Guid','$cdr_support', '$cdr_install', '$cdr_renew', '$prod_key', '$account_status', '$fp32_support', '$fp32_renew', $fp32_install)";
如果我在查询 $fp32_install 中使用一个空值就可以了,但日期输入为 0000-00-00,如果我使用“$fp32_install”,则日期可以输入,但 NULL 值输入为 1970-01- 01(可能是因为它把 'NULL' 看作一个字符串)
如果我 echo $fp32_install 值显示为 2012-08-16 并且该列的 SQL 类型是 date 并且默认值是 NULL