Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Re: check bind_columns for undefined values

by Neighbour (Friar)
on May 18, 2011 at 08:56 UTC ( #905430=note: print w/replies, xml ) Need Help??

in reply to check bind_columns for undefined values

Why would you want to replace undef values (which correspond to NULL-values in the database) with the string "null" anyway? That can change the datatype of the column (since numeric columns can also contain NULL values, which you change to a text datatype).

To answer your question, if you use

$sth->bind_columns(\$var1, \$var2, \$var3);
You'd have to check all vars to see if they're undef after fetching data and act accordingly.
This method might make things simpler:
@list_of_refs_to_vars_to_bind = (\$var1, \$var2, \$var3); $sth->bind_columns(@list_of_refs_to_vars_to_bind);
Now you can use
map { $$_ = "null" if (!defined $$_); } @list_of_refs_to_vars_to_bind;
to do your evil thing.

Replies are listed 'Best First'.
Re^2: check bind_columns for undefined values
by Anonymous Monk on Feb 12, 2013 at 00:35 UTC
    Hi, Thanks for the Map idea, I'm new to perl (but not other similar languages).
    Can someone explain why the example:

    map { $$_ = "null" if (!defined $$_); } @list_of_refs_to_vars_to_bind;

    ...uses $$_ when I would expect it to use $_ - i've googled round and round but haven't found an explanation yet.

    many thanks
      A decent tut on reference/dereference -- such as those found in Tutorials right here in the Monastery -- should make the answer clear.

      If you didn't program your executable by toggling in binary, it wasn't really programming!

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://905430]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (4)
As of 2017-12-13 00:34 GMT
Find Nodes?
    Voting Booth?
    What programming language do you hate the most?

    Results (342 votes). Check out past polls.