X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=perl%2FSesse%2Fpr0n%2FCommon.pm;h=d3d4dbeed7aab935c53e48e2866bd6c82af88c97;hb=42237f66bc46ae64d27b609b0e0a9fe6b4c44180;hp=da8173f8bbd04d2fd881bf55b97666c040d2efc0;hpb=56e33eea02b7f09d214b9a480d9c0533bdbd2cea;p=pr0n diff --git a/perl/Sesse/pr0n/Common.pm b/perl/Sesse/pr0n/Common.pm index da8173f..d3d4dbe 100644 --- a/perl/Sesse/pr0n/Common.pm +++ b/perl/Sesse/pr0n/Common.pm @@ -198,28 +198,32 @@ sub update_image_info { } } - $dbh->do('UPDATE images SET width=?, height=?, date=? WHERE id=?', - undef, $width, $height, $datetime, $id) - or die "Couldn't update width/height in SQL: $!"; + { + local $dbh->{AutoCommit} = 0; - $dbh->do('DELETE FROM exif_info WHERE image=?', - undef, $id) - or die "Couldn't delete old EXIF information in SQL: $!"; + $dbh->do('UPDATE images SET width=?, height=?, date=? WHERE id=?', + undef, $width, $height, $datetime, $id) + or die "Couldn't update width/height in SQL: $!"; - my $q = $dbh->prepare('INSERT INTO exif_info (image,tag,value) VALUES (?,?,?)') - or die "Couldn't prepare inserting EXIF information: $!"; + $dbh->do('DELETE FROM exif_info WHERE image=?', + undef, $id) + or die "Couldn't delete old EXIF information in SQL: $!"; - for my $key (keys %$info) { - next if ref $info->{$key}; - $q->execute($id, $key, guess_charset($info->{$key})) - or die "Couldn't insert EXIF information in database: $!"; - } + my $q = $dbh->prepare('INSERT INTO exif_info (image,tag,value) VALUES (?,?,?)') + or die "Couldn't prepare inserting EXIF information: $!"; - # update the last_picture cache as well (this should of course be done - # via a trigger, but this is less complicated :-) ) - $dbh->do('UPDATE last_picture_cache SET last_picture=GREATEST(last_picture, ?) WHERE event=(SELECT event FROM images WHERE id=?)', - undef, $datetime, $id) - or die "Couldn't update last_picture in SQL: $!"; + for my $key (keys %$info) { + next if ref $info->{$key}; + $q->execute($id, $key, guess_charset($info->{$key})) + or die "Couldn't insert EXIF information in database: $!"; + } + + # update the last_picture cache as well (this should of course be done + # via a trigger, but this is less complicated :-) ) + $dbh->do('UPDATE last_picture_cache SET last_picture=GREATEST(last_picture, ?) WHERE event=(SELECT event FROM images WHERE id=?)', + undef, $datetime, $id) + or die "Couldn't update last_picture in SQL: $!"; + } } sub check_access {