datetime in tabelle -> geht nicht mehr

  • Themenstarter Themenstarter offset
  • Beginndatum Beginndatum
O

offset

Hallo,
ich hab schon alles probiert - es klappt einfach nicht mehr.

Ich will eine datetime-Variable in meine Tabelle schreiben (mySQL), aber es klappt einfach nicht mehr, d.h. es ging mal. Aber ich musste etwas am Code verändern - und da ist es dann passiert.

PHP:
  $datetime = date("Y-d-m H:i:s");
  mysql_query("INSERT INTO $table_weblog (datetime) VALUE ('$datetime')");

Wenn ich es per echo ausgebe, wird Datum unZeit korrekt angegeben. Andere Daten kann ich ohne Probleme eintragen. Wenn ich mehrere Values nehme, werden alle bis auf die datetime eingetragen.

Das Feld heißt datetime, der Typ ist ein datetime, Null=Nein und der Standard steht auf "0000-00-00 00:00:00".
Wo liegt das Problem?

Edit: MySQL-Fehler gibt es keine, es wird einfach nicht in die DB eingetragen, sonst passiert nix.
 
Zuletzt bearbeitet von einem Moderator:
Das liegt daran, weil date kein Datum im MySQL-Date konformem Format erstellt. Deshalb rate ich dir wie allen anderen, die Datumsprobleme haben.
1) Datumsspalte auf INT stellen
2) Unixtimestamp speichern
3) Bei der Ausgabe den Timestamp mit date() formatieren.
 
Danke. Ich hab mal die Suche angeworfen und auch was gefunden.
Aber warum hat es bei mir funktioniert? Komischer Weise hab ich in meiner Tabelle auch Felder mit dem richtigen Datum - und jetzt ist es bunt gemischt...:-)
 
Hm, wollen wir dem TIMESTAMP-Fetischisten mal wieder was gegen bieten. Ich weiß es jetzt nicht 100%ig, aber ich meine, dass es sich bei dem Feldnamen "datetime" um geschützte Begriffe von MYSQL handelt, die man möglichst nicht verwenden sollte. Änder doch einfach mal den Namen des Feldes und versuch dan was reinzuschreiben
 
Richtig. DATETIME ist eine Spaltentypbezeichnung. Du solltest deine Spalte schnellstens anders nennen. Z.B.:
DATETIME myDate anstatt DATETIME datetime.
 
Ja, dass mit dem geschützten Namen stimmt, hab mal in der Liste von MySQL nachgeschaut.
Aber es hat damals auch mit dem Namen "datetime" funktioniert und seit dem ich den Namen in "entrydate" geändert habe, funktioniert es immer noch nicht.
Backticks bringen keine Veränderung.

Ironischer Weise habe ich schon ein paar Code-Schipsel mit meiner Variante im Netz gefunden - klappt alles nicht.

Rein theoretisch müsste es doch gehen!?
Bei der Formatierung mit
PHP:
date("Y-m-d H:i:s");
wird folgendes ausgegeben: 2003-08-14 13:06:43

Und der Typ datetime fordert die Formatierung: 0000-00-00 00:00:00.

Alles irgendwie ganz schön strange...;) :-)
 
Hm möglicherweise musst du die einfachen Anführungszeichen vor und hinter dem Wert für das Feld weglassen, weil es ja eigentlich kein varchar oder text ist :>
 
Original geschrieben von SynDrome
Hm möglicherweise musst du die einfachen Anführungszeichen vor und hinter dem Wert für das Feld weglassen, weil es ja eigentlich kein varchar oder text ist :>

Eher nicht...außer du willst einen Parse-Error...;) :p
 
Zurück