in reply to Re: (Ovid) Re: uninitialized value in concatenation
in thread uninitialized value in concatenation
When calling $sth->fetchrow_array in a scalar context, you're going to get back an array ref, possibly containing some other array refs (your result rows). So your test, if ($name eq "") {, should probably look more like, if ($name->[0][0] eq "") {, except that this completely disregards the case where no rows are returned.
You might also factor out all of the common code and elminate unnecessary complexity:
my $name = undef; # store subparent for each parent my %parent_hash = ( 'Father' => 'Mother', 'Mother' => 'Father' ); if (exists $parent_hash{$parent}) { my $sub_parent = $parent_hash{$parent}; for my $col ( $parent, $sub_parent ) { my $sql = "select $col from Roster where User=?"; my $rv = $dbh->selectcol_arrayref( $sql, undef, $user ); if ( @$rv ) { # any rows returned? $name = $rv->[0]; # take first one last; } } } # here, $name will be defined if one of above succeeded # etc. ...
Also, why are you using prepared statements (e.g., prepare() and execute()) without placeholders ('?'). You can just call selectrow_arrayref($sql) (or in your case, selectcol_arrayref($sql) since the results will be a single column) to the same effect.
Update: added placeholders, as per cfreak. What was I thinking?
dmm
If you GIVE a man a fish you feed him for a day
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re(2): (Ovid): uninitialized value in concatenation
by mnlight (Scribe) on Jan 15, 2002 at 10:35 UTC | |
by dmmiller2k (Chaplain) on Jan 15, 2002 at 20:17 UTC | |
|
Re: Re(2): (Ovid): uninitialized value in concatenation
by IlyaM (Parson) on Jan 15, 2002 at 00:31 UTC | |
|
Re: Re(2): (Ovid): uninitialized value in concatenation
by mnlight (Scribe) on Jan 15, 2002 at 02:29 UTC | |
by dmmiller2k (Chaplain) on Jan 15, 2002 at 20:00 UTC | |
by dmmiller2k (Chaplain) on Jan 15, 2002 at 20:01 UTC | |
|
Re: Re(2): (Ovid): uninitialized value in concatenation
by mnlight (Scribe) on Jan 14, 2002 at 23:33 UTC | |
by dmmiller2k (Chaplain) on Jan 14, 2002 at 23:43 UTC | |
by mnlight (Scribe) on Jan 15, 2002 at 00:33 UTC |