Given an existing database handle and a string matching a table name, it returns a simple array of column names. No muss, no fuss.
Of course, if someone knows a Better Way, or sees an optimization for this code, by all means fire away!
EDIT: added use of map, cred to jhourcle
EDIT2: replaced use of column_info with a query which is about 40% more efficient. props to jZed for coming up with that.
# SYNTAX: getColumnList($dbh, "TestTable") sub getColumnList { # grab aliases to a DB handle and a table name my($dbh,$table) = @_; my $sth = $dbh->prepare("SELECT * FROM $table WHERE 1=0;"); $sth->execute; my @cols = @{$sth->{NAME}}; # or NAME_lc if needed $sth->finish; # return now complete list of columns for the given table return @cols; }
In reply to List columns for a MySQL table by EvanK
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |