[英]PHP Date only won't insert into Mysql
我有一個HTML表單,其中有〜30個變量通過php插入到mysql中。 除日期外,所有其他變量均正確插入。 我已經看過這里和其他地方發布的許多其他問題,但仍然空白。
最初,我在HTML表單(年,月,日)設置上只有3個輸入,如下所示:
<span class="form-sub-label-container" style="vertical-align: top">
<input class="form-textbox" id="year_6" name="lengthOf[0]" type="date" value="" />
<span class="date-separate"> - </span>
<label class="form-sub-label" for="year_6" id="sublabel_year" style="min-height: 13px;"> Start Date </label>
</span>
<span class="form-sub-label-container" style="vertical-align: top">
<input class="form-textbox" id="month_6" name="lengthOf[1]" type="date" size="2" maxlength="2" value="" />
<span class="date-separate"> - </span>
<label class="form-sub-label" for="month_6" id="sublabel_month" style="min-height: 13px;"> Month </label>
</span>
<span class="form-sub-label-container" style="vertical-align: top">
<input class="form-textbox" id="day_6" name="lengthOf[2]" type="date" size="2" maxlength="2" value="" />
<label class="form-sub-label" for="day_6" id="sublabel_day" style="min-height: 13px;"> Day </label>
</span>
隨着這部分的PHP是:
$LengthOfService = $_POST['lengthOf'][0]."-".$_POST['lengthOf'][1]."-".$_POST['lengthOf'][2];
print_r($LengthOfService)
將顯示正確格式的日期yyyy-mm-dd,但是在保存日期(它是DATE類型)的列中,它顯示了0000-00-00。
SOOOOO,然后我決定嘗試將HTML表單上的輸入類型更改為最新版本,以便僅加載1個POST變量,而不是3個變量:
<span class="form-sub-label-container" style="vertical-align: top">
<input class="form-textbox" id="year_6" name="lengthOf" type="date" value="01/01/2000" />
<label class="form-sub-label" for="year_6" id="sublabel_year" style="min-height: 13px;"> Start Date </label>
</span>
所以現在的php就是:
$LengthOfService = $_POST['lengthOf'];
那仍然是不可行的,因此請繼續閱讀並決定努力嘗試格式化它,即使它似乎已經正確格式化了。
$LenthOfService = date("Y-m-d", strtotime($_POST['lengthOf']));
仍然在MySQL列中顯示為0000-00-00,而print_r($LengthOfService)
產生正確的格式...
僅供參考,這是我插入mysql的方式:
$insert = "INSERT INTO table (ColumnNames) VALUES ('$Values')";
mysql_query($insert)
or die (mysql_error());
希望我已經為某人提供了足夠的信息,以便能夠告訴我我做錯了什么或我可以嘗試的任何其他步驟。 我也沒有任何錯誤。
我測試了:
$LenthOfService = date("Y-m-d", strtotime($_POST['lengthOf']));
$insert = "INSERT INTO table (ColumnNames) VALUES ('$LenthOfService')";
echo $insert;
我得到:
INSERT INTO表(ColumnNames)值('2016-01-06')
我建議您檢查並確保未傳遞NULL,以便進行調試,像上面一樣打印查詢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.