Ticket #206 (closed Fehlermeldung: fixed)
Funktion blog() funktioniert nicht mehr (MySQL datetime vs. date())
| Reported by: | robertb | Owned by: | robertb |
|---|---|---|---|
| Priority: | blocker | Milestone: | Jlog 1.1.3 |
| Component: | Kernfunktion | Version: | 1.1.2 |
| Keywords: | blog,MySQL,datetime,date | Cc: |
Description
Mir ist vor Kurzem aufgefallen, dass zwei auf Jlog 1.1.2 umgestellte Blogs plötzlich keine korrekten Pings absetzten: „error 404“ und die URL begann mit /1970/01. Also habe ich angefangen zu recherchieren und herausgefunden, dass die Funktion blog() in source:trunk/scripts/general.func.php im Parameter $date einen Unix-Timestamp erwartet, source:trunk/admin/new.php sendet allerdings einen MySQL datetime Wert, den die PHP-Funktion date() in blog() als „Stunde Null“ interpretiert. Weitere Nachforschungen über die Verwendung von blog() scheinen nötig zu sein.
Meine Vermutung ist ja, dass da beim Umstellen das Datumsfeldes in der Datenbank vergessen wurde, die Funktion oder diesen Aufruf anzupassen. Ich werde jedenfalls den Quellcode danach durchsuchen. Und in Zukunft sollten wir vielleicht die Releases besser testen bevor wir sie veröffentlichen ;-)
Change History
comment:2 follow-up: ↓ 3 Changed 3 years ago by driehle
Hm… SELECT * ist ja schon unschön, aber SELECT *, xyz finde ich noch schlimmer ;-)
Vielleicht könntest du an der Stelle gerade noch die benötigten Datenbankspalten auflisten, wenn du schon dabei bist.
comment:3 in reply to: ↑ 2 ; follow-up: ↓ 4 Changed 3 years ago by robertb
Replying to driehle:
Hm… SELECT * ist ja schon unschön, aber SELECT *, xyz finde ich noch schlimmer ;-)
Vielleicht könntest du an der Stelle gerade noch die benötigten Datenbankspalten auflisten, wenn du schon dabei bist.
Dann werde ich mal durch den kompletten Quellcode gehen (müssen), weil SELECT *, xyz doch des öfteren vorkommt.
comment:5 follow-up: ↓ 6 Changed 3 years ago by driehle
Hm, ist das alles? Scheint mir auf den ersten Blick etwas wenig zu sein *g* Auch bei INSERT INTO sollte man (aus denselben Gründen) die Spaltennamen angeben.

Problem im SVN gelöst: Der MySQL-Request in der Funktion get_blog(), zu finden in source:trunk/admin/blog.func.php, war noch nicht an Jlog 1.1 angepasst. Mit der zusätzlichen Klausel
UNIX_TIMESTAMP(date) AS date
ließ sich der Fehler beheben; für Details siehe changeset:1773/trunk/admin/blog.func.php Das scheint aber auch das einzige Relikt aus früheren Zeiten gewesen zu sein.