projects
/
freeside.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
fdf62da
)
MySQL returns zero on an update when no values change. We would insert on an rv...
author
khoff
<khoff>
Thu, 24 Apr 2003 18:46:36 +0000
(18:46 +0000)
committer
khoff
<khoff>
Thu, 24 Apr 2003 18:46:36 +0000
(18:46 +0000)
FS/FS/part_export/sqlmail.pm
patch
|
blob
|
history
diff --git
a/FS/FS/part_export/sqlmail.pm
b/FS/FS/part_export/sqlmail.pm
index
f97674c
..
64f72df
100644
(file)
--- a/
FS/FS/part_export/sqlmail.pm
+++ b/
FS/FS/part_export/sqlmail.pm
@@
-115,17
+115,19
@@
sub sqlmail_replace {
my %attrs = @_;
map { $attrs{$_} = $attrs{$_} ? qq!'$attrs{$_}'! : 'NULL'; } keys(%attrs);
my %attrs = @_;
map { $attrs{$_} = $attrs{$_} ? qq!'$attrs{$_}'! : 'NULL'; } keys(%attrs);
- my $query = sprintf('UPDATE %s SET %s WHERE svcnum = %s',
- $table, join(', ', map {"$_ = $attrs{$_}"} keys(%attrs)),
- $oldsvcnum);
-
- my $rv = $dbh->do($query) or die $dbh->errstr;
-
- if ($rv == 0) {
+ my $query = "SELECT COUNT(*) FROM $table WHERE svcnum = $oldsvcnum";
+ my $result = $dbh->selectrow_arrayref($query) or die $dbh->errstr;
+
+ if (@$result[0] == 0) {
$query = sprintf("INSERT INTO %s (%s) values (%s)",
$table, join(",", keys(%attrs)),
join(',', values(%attrs)));
$dbh->do($query) or die $dbh->errstr;
$query = sprintf("INSERT INTO %s (%s) values (%s)",
$table, join(",", keys(%attrs)),
join(',', values(%attrs)));
$dbh->do($query) or die $dbh->errstr;
+ } else {
+ $query = sprintf('UPDATE %s SET %s WHERE svcnum = %s',
+ $table, join(', ', map {"$_ = $attrs{$_}"} keys(%attrs)),
+ $oldsvcnum);
+ $dbh->do($query) or die $dbh->errstr;
}
$dbh->disconnect;
}
$dbh->disconnect;