Timestamp und MySQL Meckert.
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
attribut
befehl
code
datenbank
eintrag
eintragen
funktion
januar
limit
problemlos verwenden
sandrock
sekunde
set
setzen
spalten
syntax
typ
uhr
update
verwenden
-
Hi habe jetzt einen Timestamp eintrag in der Mysql Datenbank und den Wollte ich per time() (PhP) befehl eintragen.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET lastlogin = '1218637929' WHERE username='Saalko' LIMIT 1' at line 3
Diese Fehlermeldung kommt, was mach ich falsch? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
So jetzt sorry, hab ich noch nicht korrigiert. Das Problem war ich hatte mir das schon länger nicht angeschaut und ich habe versucht mit einem update Befehl 2 veränderungen in der Datenbank zu verändern. Das klappt nicht. Und das wäre nicht dazu gekommen, haätte ich in der Datenbank statt Timestamp Int gesetzt für die Befehle. so ist alles durcheinandergekommen.
Trotzdem danke, dass du dir die mühe gemacht hast jetzt funktioniert wieder alles. (hoff ich zumindest) -
Wieso schreibst du den Timestamp nicht direkt über SQL in die Datenbank?
Einfach via:
<?php $sql = 'UPDATE tabellenname SET lastlogin = UNIX_TIMESTAMP() WHERE username="Saalko" LIMIT 1'; ?>
-
Außerdem musst du innerhalb des SQL-Befehls andere Anführungszeichen verwenden.
Stimmt nicht, denn man kann beide Anführungszeichen problemlos verwenden. Ich verwende aus verschiedenen Gründen innerhalb für PHP fast immer die Apostrophs für Strings, weshalb sich da automatisch die normalen Anführungszeichen ergeben, aber auch nicht immer.
Zum Thema: Warum setzt du nicht DEFAULT CURRENT_TIMESTAMP, dann musst du das überhaupt nicht mehr selbst setzen und es wird immer automatisch der aktuelle verwendet.
Außerdem kannst du noch das Attribut ON UPDATE CURRENT_TIMESTAMP nutzen, um diesen TIMESTAMP immer auf den letzten Änderungszeitpunkt setzen zu lassen.
Außerdem bietet sich auch die SQL-Funktion NOW() an (Synonyme: CURRENT_TIMESTAMP, CURRENT_TIMESTAMP()).
Die Funktion UNIX_TIMESTAMP() ergibt bei mir immer den Wert 0000-00-00 00:00:00, also für Spalten vom Typ TIMESTAMP wohl eher ungeeignet. (Vermute aber mal, dass du diesen Typ benutzt).
Edit:
Genau das, was mein Nachredner geschrieben hat, wollte ich mit meinem letzten kleinen Absatz ausdrücken. Der von evil-devil angeführte SQL-Befehl UNIX_TIMESTAMP() ist für den Typ TIMESTAMP nicht geeignet, dafür müsste INT UNSIGNED oder ähnliches verwendet werden. Leider kann man nicht erkennen, welcher Typ verwendet werden soll. Ich würde sicherlich zum Typ TIMESTAMP raten, auch auf Grund der zuvor angeführten Möglichkeiten.
Beitrag geändert: 15.8.2008 2:21:03 von pjhimself -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage