2016-03-25 19 views
0

Ich brauche mysql um automatisch ein Feld bei jedem Update zu aktualisieren. Ich habe das Feld als:redbeanphp: Wie benutze ich mysql ON UPDATE timestamp

Aber das Problem ist, wie ich einen Datensatz mit R :: Speichern aktualisieren, wird die lastModified erhält nicht automatisch aktualisiert, sondern auf den zuletzt eingestellten Wert gesetzt. Beachten Sie, dass mein Code das Feld nicht festlegt. Grundsätzlich sollte ein findOne und ein Speicher, um ein anderes Feld zu setzen, den Zeitstempel aktualisieren, aber es sieht so aus, als ob redbeans die ganze Zeile liest (so dass lastUpdated als alte Zeit ausgefüllt wird) und wenn ich anlege, dass ich es auf den alten Zeitwert setze .

+0

Können Sie einige einfache Code schreiben, der den Fehler zeigt. Ich benutze redbeanPHP, also wäre es einfach zu überprüfen. –

Antwort

0

lastModified Eigenschaft ist reine MYSQL. Es hängt nicht von der Implementierung ab.

RedbeanPHP aktualisiert auch mysql-Datenbank, haben Sie dies deaktiviert?

Sobald Sie es auf Frost setzen, können Sie die Datenbank und Tabellen selbst, ändern und redbean wird es nicht aktualisieren. Dies sollte auch die lastModified Eigenschaft kümmern.

+0

Aber es wird immer noch den alten Wert lesen und zurückschreiben. Recht ? Das würde mysql denken lassen, dass ich versuche, den neuen Wert zu setzen und ihn zu verwenden, anstatt den aktuellen Zeitstempel zu verwenden. Ich habe jetzt einen Workaround, wo in Redbeans, ich Updates von bestimmten Feldern ausschließen – John

0

versuchen diese

$bean->lastModified = date('Y-m-d G:i:s'); 
R::store($bean); 
+1

Ich empfehle die Ausarbeitung dieser Antwort mehr. Es scheint, als ob dies die OP-Frage "Warum wird der Zeitstempel nicht automatisch aktualisiert" nicht beantwortet. – Chad

+0

Entschuldigung für meine kurze Antwort, es scheint redbreen nur aktualisiert, welche Felder in der Bean geändert hat, so, wenn es 'lastModified' Timestamp festgelegt wurde NOT NULL STANDARD NULL ON UPDATE CURRENT_TIMESTAMP, in der Datenbank, setzen Sie die Bean-Eigenschaft auf null oder aktuell Zeit, um Daten zu ändern –