Hallo,
$insert_message = sprintf( 'INSERT INTO %s (' . 'message_writer, message,message_date' . ') VALUES (' . '\'%s\', \'%s\', \'%d\'' . ')', $_POST['destination'], $_SESSION['user_name'], $_POST['chat'], time());
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. 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.
Da ein Unix-Timestamp eine Ganzzahl ist, verwende am besten den Datentyp INTEGER für diese Spalte.
So long,
Martin
PS: Du tust etwas sehr Riskantes, wenn du Werte aus Benutzereingaben (POST) ungeprüft und unmaskiert an das DBMS übergibst. Beachte den Kontextwechsel!!
Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
- Douglas Adams, The Hitchhiker's Guide To The Galaxy