Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Referencing bound variables

by hok_si_la (Curate)
on Feb 11, 2005 at 21:28 UTC ( #430291=perlquestion: print w/ replies, xml ) Need Help??
hok_si_la has asked for the wisdom of the Perl Monks concerning the following question:

In the following code, the statement, "print FH $data{name};" does not print anything. I do have a column in my table named 'name'. This has to be a simple error. I should add that I have printed out the generated SQL statement and it works fine. I should be able to assume that my session was successful with RaiseError set to one correct?

############################################################ sub getInfo ############################################################ { my $dbtable = shift; my $function = shift; my $where = shift; my ($dbh, $sth, @datetime, @date, $name, %data); my $i=0; $dbh=DBI->connect('DBI:ODBC:Servers', { RaiseError => 1, AutoCommit => + 0 }); my $sth = $dbh->prepare( "$function FROM $dbtable $where" ); $sth->execute; $sth->bind_columns( \( @data{ @{$sth->{NAME_lc} } } )); $sth->{'ChopBlanks'} =1; @datetime = split(' ', $data{submit_date}); @date = split(/-/,$datetime[0]); my $userid = $data{name}; my $username = findADname($userid); open(FH, "> SQLoutput.txt")or die("Couldn't open SQLoutput.dat\n"); print FH $data{name}; print FH "Hello"; close FH; $sth->finish(); $dbh->disconnect(); #----Needed to free up system resources. }

Thanks for your help,
the hoksila

Comment on Referencing bound variables
Select or Download Code
Re: Referencing bound variables
by Roy Johnson (Monsignor) on Feb 11, 2005 at 21:47 UTC
    Just before the print statement in question, add
    use Data::Dumper; print STDERR Dumper(\%data);
    to see what you have in there. Or just print out keys %data. It's probably 'NAME'.

    Caution: Contents may have been coded under pressure.
      Okay I have an idea what is happening now. It is apparently a session issue. The SQL statement executes alone, and when I dump %data I get this:
      $VAR1 = { 'denied' => undef, 'disk_space' => undef, 'backupdb' => unde +f & on & on.

      Thanks again Roy for your help,
      Hok_si_la
Re: Referencing bound variables
by holli (Monsignor) on Feb 11, 2005 at 21:54 UTC
    well you declared %data in my ($dbh, $sth, @datetime, @date, $name, %data); but you never assign values to it, thus it is empty.

    holli, /regexed monk/
      Doesn't $sth->bind_columns( \( @data{ @{$sth->{NAME_lc} } } )); assign values to %data?
Re: Referencing bound variables
by olivierp (Hermit) on Feb 11, 2005 at 21:59 UTC
    I think you need to $sth->fetch at least once to get your %data filled with values.
    HTH
    --
    Olivier
      Indeed! Fetch will get a record and place the values in the bound variables.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://430291]
Approved by hardburn
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (12)
As of 2015-07-06 10:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (72 votes), past polls