Mailinglisten-Archive |
hi ralf.. > > 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? > den feldtyp versuch ich zu vermeiden, da ich die timestamps rechnerisch einfach als zahlen verwenden will, ausserdem kenn ich die besonderheiten vom timestamp-typ nicht.. struktur: mysql> show columns from foo_sessions; +--------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+--------------+------+-----+---------+----------------+ | autoid | int(11) | | PRI | NULL | auto_increment | | sid | varchar(100) | | | | | | data | text | | | | | | addr | varchar(100) | | | | | | opened | int(14) | YES | | NULL | | | expire | int(14) | YES | | NULL | | +--------+--------------+------+-----+---------+----------------+ 6 rows in set (0.00 sec) also ein int.. aber eben, das "opened"-feld ist ja richtig.. die session wurde bei "opened" geöffnet und soll ab "expire" geschlossen werden.. inhalt: mysql> select sid, opened, expire from foo_sessions; +----------------------------+------------+------------+ | sid | opened | expire | +----------------------------+------------+------------+ | 9d3b2a9ff448a8b6b6d5f704b0 | 1062683819 | 2147483647 | +----------------------------+------------+------------+ 1 row in set (0.00 sec) > Zeig' mal die Datenbank-Definition und das entsprechende > Codefragment. > das code-fragment hab ich vorher schon geposted mit einer referenz auf die klasse.. inserten tut create_session() am anfang, give_lifetime() verlängert bei jedem instanzieren und resumen der session die expire-dauer.. was brauchst du noch? > > > Der MySQL-Typ "timestamp" wird automatisch geaendert. Falls Du > diesen verwendest, ist dies die Erklaerung. schade ;( > falls nicht, der von Dir genannte Wert sieht sehr nach > dem maximalen Wert fuer Integer-Felder aus. hmm.. ja da mach ich mir eh sorgen... ich mein jetzt sinds ja noch 10 zeichen von 14 erlaubten (das meint doch das int(14)?), aber mit jeder verstrichenen sekunde kommts dem gau immer näher ;) > Hast Du versucht, einen Wert, der groesser ist als jener, > in ein Integer-Feld zu speichern? hmmm.. eben, im vorherigen mail hab ich alle sql-queries, die die klasse ausführt, gepostet.. dort scheint alles ok zu sein und nicht zu lang.. > http://www.mysql.com/doc/en/Column_types.html die maximallänge sind anscheinend doch 10 zeichen, jedoch 4294967295 > > Speichere den Unix-Timestamp in einem (var)char-Feld. kann mysql vergleiche auf char-felder machen? kann ich dann immer noch zb delete from foo_sessions where expire < 22034023 machen? wenn ja, wär das wohl die beste lösung.. > Oder verwende datetime-Felder, fuer die Umwandlung von und > in andere Formate stellen sowohl MySQL als auch PHP > Funktionen zur Verfuegung. hm, ja, auch da das problem wegen meinem vergleichs-query (dem delete), mit dem ich die records lösche. war ein sehr praktisches und schnelles query.. tausend dank dario > > Beste Gruesse, > Ralf
php::bar PHP Wiki - Listenarchive