Hey,
Dieses
time()
schreibt in die Datenbank immer den gleichen wert.nein, ganz bestimmt nicht.
Eben war es 1463920000 und heute morgen war es 1463900000 und jetzt ist es gerade auf 1463930000 gesprungen.
Das ist der Wert, den du wieder zurückliest, aber bestimmt nicht der Wert, der an die DB übergeben wird.
Naja das kommt in der Tabelle an.
Was für einen Type hat denn die Spalte message_date? Vielleicht FLOAT? Dieses Format entspricht in seiner kleinsten Form dem IEEE-Datentyp single und hat nur eine Genauigkeit von etwa 6..7 gültigen Stellen.
OK gerade getestet als INT
geht es wieder. Und ja ich hab es auf Float
gewechselt da ich die Zeit gern mit:
function microtime_float()
{
list($milli_sec, $sec) = explode(" ", microtime());
return ((float)$milli_sec + (float)$sec);
}
speichern möchte.
Aber das funktioniert absolut nicht.
Das müsste ich wohl machen da ich die Ergebnisse aus verschiedenen Tabellen in einem Array speichere und die Zeit als key
verwende, um mit ksort()
das ganze in die richtige Reihenfolge zu bringen.
Wenn nun also zwei Nachrichten den selben Timestamp hätten würde die später hinzugefügte überschrieben werden.
Außer ich finde irgendwann nochmal eine Möglichkeit Array Elemente durch dessen Inhalt zu sortieren.
PS: Du tust etwas sehr Riskantes, wenn du Werte aus Benutzereingaben (POST) ungeprüft und unmaskiert an das DBMS übergibst. Beachte den Kontextwechsel!!
Naklar, kommt direkt nachdem die funktionalität steht.
Gruß Jo