簡體   English   中英

PHP日期僅不會插入Mysql

[英]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"> &nbsp;- </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"> &nbsp;- </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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM