2012-12-08 77 views
0

在我的表單上,我有一個不是必填字段的日期字段。我的問題是,如果用戶沒有填寫這個字段,他們提交表單,在MySQL數據庫,而不是將該字段留空,它將保存1969年12月31日和任何後續表格,已在同一天提交如果此字段再次保留空白,則將從1969年至12月31日的升序日期。我該如何更改,以便mysql將簡單地將該字段留空。謝謝閱讀。PHP Mysql空白日期字段值提交

這裏是代碼:

<input id="nfud" name="nfud" type="date" class="input-small"/> 

Mysql的提交查詢

$nfud = date('Y-m-d', strtotime($_POST["nfud".$n.""])); 
$query="insert into number_info (phone_number, data_plan, phone_used, fud, dealID) 
values ('".$nphone_number."','".$ndata_plan."','".$nphone_used."','".$nfud."','$dealID')"; 
     mysql_query($query) or die(mysql_error()); 
+0

是否將日期字段設置爲非空? – geekman

+0

日期字段設置爲空 –

回答

0

在MySQL中,給出日期字段爲0

+0

感謝您的答覆。我將mysql的日期字段設置爲默認的0000-00-00,但仍然在表單提交1970-01-01時保存,而不是 –

2

默認值剛剛離開的字段爲空,如果你沒有在您的表單中發佈日期:

if(isset($_POST["nfud$n"]) { 
    $nfud = date('Y-m-d', strtotime($_POST["nfud$n"])); 
} else { 
    $nfud = ""; 
} 
$query="insert into number_info (phone_number, data_plan, phone_used, fud, dealID) 
values ('".$nphone_number."','".$ndata_plan."','".$nphone_used."', '".$nfud."','$dealID')"; 
     mysql_query($query) or die(mysql_error()); 

編輯:試試這個讓MySQL的把默認值的列

if(isset($_POST["nfud$n"]) { 
    $nfud = date('Y-m-d', strtotime($_POST["nfud$n"])); 
    $query="insert into number_info (phone_number, data_plan, phone_used, fud, dealID) 
      values ('".$nphone_number."','".$ndata_plan."','".$nphone_used."','".$nfud."','$dealID')"; 

} else { 
    $query="insert into number_info (phone_number, data_plan, phone_used, dealID) 
      values ('".$nphone_number."','".$ndata_plan."','".$nphone_used."','$dealID')"; 
} 

mysql_query($query) or die(mysql_error()); 
+0

謝謝你的回覆。我試過這個,唯一改變的是現在的日期並沒有上升,而是停留在1970-01-01。我甚至嘗試過'$ nfud =「0000-00-00」;'但它仍然保存1970-01-01。我也設置默認的mysql日期字段爲0000-00-00 –

+0

我也嘗試過'$ nfud ='NULL';'但仍然1970-01-01是aved –

+0

剛試過'$ nfud = NULL;'仍然沒有去。 –

0

這可以在MySQL的一側的默認和其他設置進行控制。

你可以在mysql中運行以下代碼並共享結果嗎?

SHOW CREATE TABLE number_info; 
+0

我運行它,但我不知道我應該顯示什麼結果。 MySql只是說''CREATE TABLE'number_info'( 'numberID' int(11)...'' –

+0

是的,這就是它應該顯示的內容。你能顯示完整的輸出嗎? –