Keine Fehlermeldungen bei falschem Datentyp

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Keine Fehlermeldungen bei falschem Datentyp

    MySQL gibt mir keine Fehlermeldung raus, wenn bei einem INSERT,UPDATE der Datentyp des Werts nicht mit dem Datentyp des Feldes übereinstimmt.

    Wenn ich ein Feld habe Datentyp DATE (0000-00-00) und ich übergebe den Wert 'Hund' wird 'Hund' zwar nicht eingetragen (anstattdessen der Autowert), aber es erfolgt keine Fehlermeldung. Das ist schlecht...

    Gibt es einen Weg hier eine Fehlermeldung zu erzwingen, quasi MySQL ein wenig mehr Strenge beizubringen?

    1000 Dank, mil

  • #2
    Re: Keine Fehlermeldungen bei falschem Datentyp

    http://dev.mysql.com/doc/refman/5.1/en/datetime.html:
    Illegal DATETIME, DATE, or TIMESTAMP values are converted to the “zero” value of the appropriate type ('0000-00-00 00:00:00' or '0000-00-00').
    Ändern lässt sich das ggf. noch über die Server SQL Modes - bspw. NO_ZERO_DATE könnte hier greifen.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Mach doch eine Überprüfung im PHP-Code. Eigentlich sollte es gar nicht möglich sein was anderes als ein Datum an die SQL-Datenbank zu senden, wenn diese eins erwartet.

      Kommentar


      • #4
        SQL Mode ist die Lösung:


        STRICT_ALL_TABLES
        Enable strict mode for all storage engines. Invalid data values are rejected. Additional detail follows. (Added in MySQL 5.0.2)

        Kommentar

        Lädt...
        X