Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision af9a1f44

Von Martin Helmling martin.helmling@octosoft.eu vor fast 8 Jahren hinzugefügt

  • ID af9a1f44788ded346d8510511d26a760d996ba14
  • Vorgänger 863eb430
  • Nachfolger c17d679a

Historien Suchmaschine: Stacküberlauf vermeiden

Die Fehlermeldung
'DBD::Pg::st execute failed: ERROR: stack depth limit exceeded' wird durch
Anpassung des queries vermieden

statt:
WHERE (trans_id = 2088 OR trans_id=2090 OR trans_id=2092 ... (10000 fach)

nun:

WHERE (trans_id = 2088 OR trans_id IN (2090,2092,2094, ...

Unterschiede anzeigen:

bin/mozilla/am.pl
1257 1257

  
1258 1258
  my @ids    = grep { $_ * 1 } selectall_array_query($form, $dbh, $query);
1259 1259
  my $daten .= shift @ids;
1260
  $daten    .= join '', map { " OR trans_id = $_" } @ids;
1261

  
1260
  if (scalar(@ids) > 0 ) {
1261
    $daten  .= ' OR trans_id IN (' . join(',', @ids) . ')';
1262
  }
1262 1263
  my ($sort, $sortby) = split(/\-\-/, $form->{order});
1263 1264
  $sort =~ s/.*\.(.*)$/$1/;
1264 1265

  

Auch abrufbar als: Unified diff