Heim >Datenbank >MySQL-Tutorial >Wie behebt man „0000-00-00 00:00:00'-Datumseinfügungsfehler in PHP und MySQL?

Wie behebt man „0000-00-00 00:00:00'-Datumseinfügungsfehler in PHP und MySQL?

Barbara Streisand
Barbara StreisandOriginal
2024-12-31 17:44:18314Durchsuche

How to Fix

PHP MySQL-Datumsformat einfügen: Problem mit ungültigem Datum beheben

Das Einfügen eines Datums in eine MySQL-Datenbank kann manchmal zu einem Fehler in der Datenbank führen fügt trotz korrektem Datumsformat im Code nur „0000-00-00 00 00 00“ ein. Dieses Problem tritt auf, wenn das Datumsformat von MySQL nicht erkannt wird.

Um dieses Problem zu beheben, müssen unbedingt die angegebenen Datumsformate eingehalten werden, die MySQL akzeptiert:

  • String Format: 'JJJJ-MM-TT' oder 'JJ-MM-TT' mit optionalen Trennzeichen.
  • Numerisch Format: JJJJMMTT oder JJMMTT, sofern es sich um ein gültiges Datum handelt.

Im angegebenen Code wird das Datum im Format „25.08.2012“ empfangen, das von nicht erkannt wird MySQL. Daher müssen wir das Datumsformat in eines der unterstützten Formate ändern.

Optionen zur Lösung des Datumsformatproblems:

  1. Datumsauswahl konfigurieren : Verwenden Sie altField und <code data-type="javascript">altFormat, um das Format anzugeben, in dem das Datum an das PHP-Skript übergeben wird. Beispiel: <code data-type="javascript">altFormat: „yyyy-mm-dd“.
  2. Verwenden Sie die Funktion STR_TO_DATE(): Konvertieren Sie die Datumszeichenfolge mithilfe von STR_TO_DATE() in das von MySQL unterstützte Format. Funktion. Beispiel:

    INSERT INTO user_date VALUES ('', '$name', STR_TO_DATE('$date', '%m/%d/%Y'))
  3. DateTime-Objekt verwenden: Konvertieren Sie die Datumszeichenfolge in ein PHP-DateTime-Objekt, rufen Sie die formatierte Zeichenfolge ab und verwenden Sie sie in der Einfügeabfrage. Beispiel:

    $dt = \DateTime::createFromFormat('m/d/Y', $_POST['date']);
    $date = $dt->format('Y-m-d');
    
    INSERT INTO user_date VALUES ('', '$name', '$date')
  4. Datumszeichenfolge bearbeiten:Datumszeichenfolge manuell bearbeiten, um sie in ein gültiges MySQL-Format zu konvertieren. Beispiel:

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

Zusätzliche Überlegungen:

  • SQL-Injection vermeiden: Vorbereitete Anweisungen mit Parametrisierung verwenden Abfragen zur Vermeidung von Sicherheitslücken.
  • Verwenden Sie MySQL 5.5 Empfehlung:Verwenden Sie die mysqli-Erweiterung oder PDO_MySQL anstelle der veralteten mysql_*-Funktionen.
  • Berücksichtigen Sie den DATE-Typ:Verwenden Sie den MySQL-DATE-Typ anstelle von DATETIME oder TIMESTAMP, wenn Sie dies nur benötigen Speicherdatum ohne Zeitangabe.

Das obige ist der detaillierte Inhalt vonWie behebt man „0000-00-00 00:00:00'-Datumseinfügungsfehler in PHP und MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn