Mailinglisten-Archive |
On Thu, 04 Sep 2003, Dario Nuevo wrote: > ich hab eine klasse ("sessionara", infos auf php.dn2k.ch), welche ein > timestamp in der datenbank (mysql) updaten soll. leider ist eine total > falsche zahl dann in der tabelle als es sein sollte. die zahl ist viel > zu hoch, sprich das timestamp in sehr sehr ferner zukunft und so kann > ich dann den record nicht rauslöschen (löschen folgt anhand des > timestamps..) Dir ist aber schon klar, dass der MySQL-Typ "timestamp" kein Timestamp im Unix-Format, wie ihn die PHP-Funktionen generieren, darstellt? Bzw. in welchem MySQL-Typ speicherst Du den Timestamp? Zeig' mal die Datenbank-Definition und das entsprechende Codefragment. > 2 sehr einfache queries also. nun gehts ums feld "expire".. grad nach > dem update hat expire aber einen ganz anderen wert als den gesetzten, > nämlich '2147483647^! wieso?? wie kann das sein? wieso steht sowas dann Der MySQL-Typ "timestamp" wird automatisch geaendert. Falls Du diesen verwendest, ist dies die Erklaerung. falls nicht, der von Dir genannte Wert sieht sehr nach dem maximalen Wert fuer Integer-Felder aus. Hast Du versucht, einen Wert, der groesser ist als jener, in ein Integer-Feld zu speichern? > (time()+60)*$this->cfg["session_howlong"]; Also Unix-Timestamp. Der kann gross werden, duerfte damit nicht in ein Integer-Feld passen. Siehe http://www.mysql.com/doc/en/Column_types.html > any hints?! Speichere den Unix-Timestamp in einem (var)char-Feld. Oder verwende datetime-Felder, fuer die Umwandlung von und in andere Formate stellen sowohl MySQL als auch PHP Funktionen zur Verfuegung. Beste Gruesse, Ralf -- :: php::bar | Der Treffpunkt fuer Einsteiger und Fortgeschrittene :: http://phpbar.de
php::bar PHP Wiki - Listenarchive