On 01/10/2011 23:16, Jeffrey Joh wrote:
> 
> I am trying to run an insert statement with DBI.
> 
> $dbh->do(q{insert into zillow_table values 
> (?,?,?,?,?,?,?,?)},undef,($homeid,$code,$text,$pid,$street,$city,$state,$zlastupdated));
> 
> However, I get "Cannot bind a reference" error.  Why does that occur?
> $dbh is part of a foreach loop and several of the executed variables
> are null/undefined.

Your problem is almost certainly because one of your bound variables

  $homeid
  $code
  $text
  $pid
  $street
  $city
  $state
  $zlastupdated

is set to a reference. You can only bind values that are set to a
string, a number, or undef. You should check the values of your
variables before each insert to find where it is going wrong.

Also, if you are executing the insertion in a loop then you should first
prepare it outside the loop, otherwise the same SQL statement is
wastefully being prepared many times. Something like

  my $insert = $dbh->prepare(q{insert into zillow_table values 
(?,?,?,?,?,?,?,?)});
  foreach (...) {
    
$insert->execute($homeid,$code,$text,$pid,$street,$city,$state,$zlastupdated);
  }

HTH,

Rob

-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to