Klaus Mock: Fehler mit einem Anweisungshandle vom DBI

Beitrag lesen

Hallo,

$query = "select id, TO_char(started_at, 'dd.mm.yy  hh24.mi.ss') ";

....
Das ist irgendwie nicht wirklich perlish. Perl kennt auch mehrzeilige String-Konstanten und sog. HERE-Documents.
z.B:
$query = <<EOT;
select id, TO_char(started_at, 'dd.mm.yy  hh24.mi.ss')
  from t_esdoc_eseries, t_esdoc_eseries_link
 where subject_id = '$clone_name'
   and id = eseries_id and name = 'LAB-PHASE'
 order by started_at
EOT

Und ausserdem überschreibst Du hier...

$sth = $dbh ->prepare($query);

... und hier ...

$query = "select t_esdoc_watched.id, result, name, TO_char (created_at, 'dd.mm.yy hh24.mi.ss') ";

... ausserdem auch hier

$sth = $dbh->prepare($query);

... und hier auhc noch einmal globale Variablen.

Hätte jemand eine Idee, warum das so ist?

Du überschreibst Dir in der aufgerufenen Funktion den Statement-Handle der aufrufenden Funktion. Das mag keine Programiersprache, auch Perl nicht. Mit "use strict;" wäre das nicht passiert.

Abhilfe: Setze "use strict;" ein und behebe die dadurch zu Tage tretenden Fehler.

Grüße
  Klaus