dedlfix: MySQL Timestamp

Beitrag lesen

Tach!

Meine MySQL Query Klasse hat im Moment keine Abfrage welche Art von Wert ich übergebe. Das sieht im Moment so aus
$objQuery->add("FELDNAME","=",$intTimestamp);

Dann schlage ich vor, dass du dieses Problem generell durch Erweiterung deiner Klasse löst. Man braucht manchmal einfach Ausdrücke im Statement, die nicht wie normale Strings behandelt werden können (z.B. NOW(), und auch Schlüsselwörter wie NULL). Du könntest eine weitere Klasse erstellen, die nur als Formelaufnehmer dient. Zum Beispiel so:

$objQuery->add("FELDNAME", "=", new Ausdruck('FROM_UNIXTIME(' . $intTimestamp . ')'));

Der Konstruktor von "Ausdruck" legt den übergebenen Wert in einer internen Variable ab und gibt ihn auf Anforderung heraus. Mehr macht die Klasse nicht. Die add-Methode jedoch prüft ob ein String oder eine instanceof Ausdruck übergeben wurde und macht dann jeweils das richtige damit.

Und genau diese Abfrage wollte ich mir ersparen, falls das irgendwie geht und ich mysql sagen kann "heys vorsicht, ich arbeite mit Timestamps". Ich hab dummerweise angenommen das Timestamp Felder mit Timestamps klar kommen :D.

Vielleicht bekommst du was mit Views, auf alle Fälle aber eine Lösung mit Stored Procedure hin. Aber einfacher als die Klassenerweiterung wird das sicher nicht.

dedlfix.