首頁 > 資料庫 > mysql教程 > 如何修正 PHP 和 MySQL 中的「0000-00-00 00:00:00」日期插入錯誤?

如何修正 PHP 和 MySQL 中的「0000-00-00 00:00:00」日期插入錯誤?

Barbara Streisand
發布: 2024-12-31 17:44:18
原創
315 人瀏覽過

How to Fix

PHP MySQL 插入日期格式:解決無效日期問題

將日期插入MySQL 資料庫有時會導致資料庫出現錯誤儘管代碼中的日期格式正確,但僅插入“0000-00-00 00 00 00”。當 MySQL 無法辨識日期格式時,就會出現此問題。

要解決此問題,必須遵循MySQL 接受的指定日期格式:

  • 字串格式: 'YYYY-MM-DD' 或'YY- MM-DD' 可選分隔符號。
  • 數位格式: YYYYMMDD 或 YYMMDD,前提是它代表有效日期。

在給定的程式碼中,日期以以下格式接收: 08/25/2012',MySQL 無法辨識。因此,我們需要將日期格式修改為支援的格式之一。

解決日期格式問題的選項:

  1. 設定日期選擇器: 使用altField 和<code data-type="javascript">傳遞日期的格式到PHP 腳本。例如,<code data-type="javascript">altFormat: "yyyy-mm-dd".
  2. 使用STR_TO_DATE() 函數:使用STR_TO_DATE() 將日期字串轉換為MySQL 支援的格式功能。範例:

    INSERT INTO user_date VALUES ('', '$name', STR_TO_DATE('$date', '%m/%d/%Y'))
    登入後複製
  3. 使用DateTime 物件: 將日期字串轉換為PHP DateTime 對象,取得格式化字串,並在插入查詢中使用它。範例:

    $dt = \DateTime::createFromFormat('m/d/Y', $_POST['date']);
    $date = $dt->format('Y-m-d');
    
    INSERT INTO user_date VALUES ('', '$name', '$date')
    登入後複製
  4. 操作日期字串: 手動操作日期字串,將其轉換為有效的 MySQL 格式。範例:

    $parts = explode('/', $_POST['date']);
    $date = "$parts[2]-$parts[0]-$parts[1]";
    
    INSERT INTO user_date VALUES ('', '$name', '$date')
    登入後複製

其他注意事項:

  • 避免使用有🎜> 使用帶有參數化的準備好的語句查詢以防止安全
  • 使用MySQL 5.5 建議:
  • 使用 mysqli 擴充或 PDO_MySQL 而非已棄用的 mysql_* 函式。
  • 考慮 DATE 類型:
  • 使用如果您只需要儲存日期而無需儲存時間,則使用 MySQL DATE 類型而不是 DATETIME 或 TIMESTAMP資訊。

以上是如何修正 PHP 和 MySQL 中的「0000-00-00 00:00:00」日期插入錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板