Thread Welche Variante von fetch* mit DBI benutzen?
(9 answers)
Opened by Gast at 2007-08-20 23:27 Quote Ja, das meinte ich mit Quotevielleicht hätte ich es anders schreiben sollen. Quote Das ergibt so wie du es schreibst für mich keine logik. Nach dieser logik kann man also auch kein "SELECT *" nutzen da man ja für alles mit "as" einen neuen Namen setzen muss, da die groß/kleinschreibung ja anders sein könnte. Damit hätte ich keinen Vorteil, und das SQL wird sogar noch länger als bei einem fetchrow_arrayref() den da kann ich mir die "AS ..." sparen. Aber so nebenbei gesagt, du kannst folgendes machen. Code (perl): (dl
)
$hash_ref = $sth->fetchrow_hashref('NAME_lc'); Dann werden alle Keys automatisch in kleinbuchstaben umgewandelt. Du kannst das Attribut aber auch auf dem Datenbank handle setzen, so musst du das nicht bei jeder Abfrage neu setzen. Code (perl): (dl
)
$dbh->{FetchHashKeyName} = 'NAME_lc'; ---- Aber insgesamt wie du es schreibst sehe ich keine Vorteile mehr. Bei identischen Hash Keys musst du sowieso wieder manuel mit "AS" direkte Namen zuweisen. Zudem ist ein fetchrow_hashref langsamer als ein normalen fetchrow_array() und vorallem als ein fetchrow_arrayref() Zitat aus perldoc DBI: Quote Es kann genau in dem Sonderfall nützlich sein wenn man ein "SELECT *" macht, wenn man alles oben beachtet. Ich finde das zu komplex. Ein fetchrow_arrayref() ist performant und man muss da nicht so viele sonderfälle beachten. Ich meine aber immer noch das da noch etwas war was gegen fetchrow_hashref() spricht, ich weiß aber nicht mehr genau was es war. Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
|