Hallo Ich habe ein Problem mit der letzten Benutzer Login-Zeit in meiner Datenbank zu aktualisieren, wenn ich es auf eine andere Spalte aktualisieren funktioniert es perfekt, aber es funktioniert einfach nicht, wenn ich Versuchen Sie, die spezifische Spalte "lastlogin" zu aktualisieren.datetime Feld wird nicht in MySQL Datenbank aktualisiert
Mein Code:
@mysql_query("UPDATE my_users SET lastlogin=NOW() WHERE id=".$_SESSION["id"]);
My DB column:
column name: lastlogin
type: datetime
Null: No
Default: 0000-00-00 00:00:00
falsch Alles, was mit der Art und Weise ist die Spalte Setup in der DB? Wie ich oben erwähnt habe, wenn ich es NOW() in einer anderen Spalte sagen soll, funktioniert es gut.
Ich empfehle Ihnen, das '@' at-Zeichen vor 'mysql_query' zu entfernen. Wenn es einen Fehler gibt, denke ich, dass wir es wissen wollen. Eine weitere Empfehlung: Weisen Sie die dynamisch generierte SQL-Anweisung einer Variablen in einem separaten Schritt zu und echo oder vardump die Variable für debuggin, bevor Sie mysql_query aufrufen. Wir könnten diese SQL-Anweisung zum Testen zu einem anderen Client nehmen. Und was ist der Datentyp der Spalte 'id'? Ist der Wert von $ SESSION ["id"] integer? mysql_-Schnittstellenfunktionen sind veraltet und haben PHP 7 entfernt. Verwenden Sie PDO oder mysqli und vorbereitete Anweisungen mit Bind-Platzhaltern. – spencer7593
@ spencer7593 danke für den Rat. Ich weiß, dass die Abfrage funktioniert, denn wenn ich "lastlogin" in ein anderes Datenbankfeld ändere, fügt es die Daten in die Datenbank ein. Das Problem ist, wenn Sie versuchen, in die Spalte "lastlogin" einzufügen. –
schließen Sie einige Möglichkeiten aus ... Es gibt keinen 'BEFORE UPDATE'-Trigger, der in der Tabelle definiert ist, der' lastlogin' einen Wert zuweist, es gibt kein 'AFTER UPDATE', das einen Fehler verursacht und die Transaktion rückgängig macht. Ich schlage vor, dass Sie versuchen, * zwei * Spalten zu aktualisieren, JETZT() sowohl auf "logindate" als auch auf eine andere Tabellenspalte zuzuweisen. Und sehen Sie, ob das Update der anderen Spalte erfolgreich ist. – spencer7593