From ba87ea3380ea15130952d8e9ae653e489554d258 Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Mon, 17 Jul 2006 00:37:32 +0000 Subject: [PATCH] Fix a bug where a User's object cached lastModified time and the time in the db can be off by 1 second. This is pretty rare but can be found during testing. --- lib/WebGUI/User.pm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/WebGUI/User.pm b/lib/WebGUI/User.pm index 65a59eae5..4660f74fe 100644 --- a/lib/WebGUI/User.pm +++ b/lib/WebGUI/User.pm @@ -442,10 +442,11 @@ sub profileField { if (defined $value) { $self->uncache; $self->{_profile}{$fieldName} = $value; - $self->session->db->write("delete from userProfileData where userId=".$self->session->db->quote($self->{_userId})." and fieldName=".$self->session->db->quote($fieldName)); - $self->session->db->write("insert into userProfileData values (".$self->session->db->quote($self->{_userId}).", ".$self->session->db->quote($fieldName).", ".$self->session->db->quote($value).")"); - $self->{_user}{"lastUpdated"} =$self->session->datetime->time(); - $self->session->db->write("update users set lastUpdated=".$self->session->datetime->time()." where userId=".$self->session->db->quote($self->{_userId})); + $self->session->db->write("delete from userProfileData where userId=? and fieldName=?",[$self->{_userId}, $fieldName]); + $self->session->db->write("insert into userProfileData values (?,?,?)", [$self->{_userId}, $fieldName,$value]); + my $time = $self->session->datetime->time(); + $self->{_user}{"lastUpdated"} = $time; + $self->session->db->write("update users set lastUpdated=? where userId=?", [$time, $self->{_userId}]); } return $self->{_profile}{$fieldName}; }