Timestamp-Feld per PHP füllen
Thomas Beck
- datenbank
0 Andreas Cloos0 Tom0 Thomas Beck0 Tom
0 PHP_Dude0 Thomas Luethi
Hallo zusammen,
ich versuche einen aktuellen Zeitpunkt in von PHP aus in einer MySQl-Datenbank zu speichern. Momentan ist noch egal, ob das Feld als Timestamp oder als Datetime definiert ist, wobei nach meinen Informationen Datetim wohl besser ist.
Mein Problem ist nun, dass ich aus PHP per insert einen Datensatz in eine Tabelle schreiben will, wobei ein Feld eben dieser Timestamp sein soll.
Ich habe versucht, per date()-Funktion mir das benötigte Format in eine PHP-Variable zu schreiben, und diese dann an der entsprechenden Stelle zu inserten:
$datzeit=date("Y m d h:i:s");
$sql="insert into bestellung (best_nr,person_ID,best_zeitpkt,best_status,best_betrag,externe_best_nr) values ('','".$_POST["userid"]."',''".$_POST["gessum"]."'',2,'".$datzeit."',4711)";
Dabei bekam ich einen SQL-Fehler.
Mir sind auch die MySQL-seitigen Funktionen bewußt (wie CURDATE() etc.) ich weiß nur nicht wie ich diese per PHP in die Datenbank schreibe.
Über Tipps wäre ich sehr dankbar!
Gruß,
Thomas
Hallo Zusammen,
ich versuche einen aktuellen Zeitpunkt in von PHP aus in einer MySQl-Datenbank zu speichern. Momentan ist noch egal, ob das Feld als Timestamp oder als Datetime definiert ist, wobei nach meinen Informationen Datetim wohl besser ist.
Ist das so? Keine Ahnung. Ich nehme dabei immer TIMESTAMP und richte mich nach dem MySQL-Handbuch, in dem es heißt:
Automatic updating of the first TIMESTAMP column occurs under any of the following conditions:
RTFM (mySQL) und such darin mal nach datetime und timestamp, wenn Du es noch genauer wissen willst.
Hallo,
Mir sind auch die MySQL-seitigen Funktionen bewußt (wie CURDATE() etc.) ich weiß nur nicht wie ich diese per PHP in die Datenbank schreibe.
Na, indem Du sie einfach in SQL-String mit aufnimmst. Darum heißt das Ding ja SQL-String.
Die PHP-MySQL-API gibt das dann so an MySQL weiter, als hättest Du es an der Console eingetippt.
Grüße
Tom
Hallo,
Na, indem Du sie einfach in SQL-String mit aufnimmst. Darum heißt das Ding ja SQL-String.
Die PHP-MySQL-API gibt das dann so an MySQL weiter, als hättest Du es an der Console eingetippt.
Ich habe das jetzt so verstanden, dass ich einfach ein NOW() (oder CURRENT_TIMESTAMP) anstatt meine Variablen $datzeit in den VALUE-Feldern stehen habe. Nur das verursacht auch wieder einen SQL-Fehler.
Hättest du vielleicht ein kurzes Syntax-Besipiel, vielen Dank.
Gruß,
Thomas
Bitteschön...
$sql = "Insert into TEST set EDITTIME=now()";
Wenn TEST die Tabelle ist und EDITTIME das Feld mit dem Typ DateTime.
Viel Erfolg
Tom
Hallo
$datzeit=date("Y m d h:i:s");
Das muss so heissen:
$datzeit=date("Y-m-d H:i:s");
PHP ist da sehr genau, und MySQL ebenfalls.
Hallo (auch) Thomas,
ich versuche einen aktuellen Zeitpunkt in von PHP aus in einer MySQl-Datenbank zu speichern. Momentan ist noch egal, ob das Feld als Timestamp oder als Datetime definiert ist, wobei nach meinen Informationen Datetim wohl besser ist.
http://www.mysql.com/doc/de/Date_and_time_types.html
Der Hauptunterschied ist das automatische Updaten der _ersten_ Spalte
vom Typ TIMESTAMP. Die uebrigen Spalten bleiben davon unberuehrt,
die musst Du auch manuell mit NOW() oder so aktualisieren, ebenso wie
die DATETIME Felder.
$datzeit=date("Y m d h:i:s");
Das ist natuerlich das falsche Format.
Lies bei obigem Link nach, wie es fuer MySQL aussehen soll.
So sollte es klappen:
$datetime=date("Y-m-d h:i:s");
$timestamp=date("Ymdhis");
Gruesse,
Thomas