Thread MySQL: Spaltennamen auslesen?
(9 answers)
Opened by pixelflat at 2007-09-17 17:34
Schau mal unter perldoc DBI unter "Statement Handle Attributes". Dort hat ein Statement das Attribut "NAMES" was eine Arrayref auf die Spaltennamen zurück gibt, so wie du es abgefragt hast. Übrigens sollte man deswegen auch kein "SELECT *" benutzen sondern gleich alle Parameter angeben im SQL. Macht weniger Probleme.
Code: (dl
)
1 mysql> select * from faq; dbi_name.pl Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #!/usr/bin/perl use strict; use warnings; use DBI; my $db_user = 'root'; my $db_passwd = ''; my $db_options = { RaiseError => 1, AutoCommit => 1 }; my $dbh = DBI->connect('dbi:mysql:database=faq', $db_user, $db_passwd, $db_options) or die DBI::errstr; my $sth = $dbh->prepare( 'SELECT * FROM faq' ); $sth->execute(); my $num_of_fields = $sth->{NUM_OF_FIELDS} - 1; my $names = $sth->{NAME}; while ( my $row = $sth->fetchrow_arrayref ) { for my $i ( 0 .. $num_of_fields ) { print $names->[$i], ' => ', $row->[$i], "\n"; } print "\n"; } $dbh->disconnect; Code: (dl
)
1 sidburn@sid:~/perl$ ./dbi_name.pl Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
|