in reply to Re: error ..ON DUPLICATE KEY UPDATE value='''
in thread error ..ON DUPLICATE KEY UPDATE value='''

Have you got DBI's RasieError set? Look for a call to DBI->connect and see if RaiseError => 1. If yes, then your call to do on line 14 just before your Dumper call will die and all your seeing in the Dumper output is from the last successful call and not the one that is failing. If so do:

eval { $dbh->do($sql); }; if (my $ev = $@) { print Dumper($sq); die $ev; }

Now you'll only get Dumper output for the failing case.

Replies are listed 'Best First'.
Re^3: error ..ON DUPLICATE KEY UPDATE value='''
by nafri (Initiate) on Aug 02, 2013 at 23:09 UTC
    RaiseError => 1 is set. the error i get now is this..
    $VAR1 = 'INSERT INTO products_features (product_id, feature_id, value) VALUES (5652151, , \'\') ON DUPLICATE KEY UPDATE value=\'\'';
    looks like the feature_id, value is empty here..What can i do to fix this..
      What values should be inserted? If a blank feature_id is valid, supply a NULL (no quotes). If it is not valid, then skip that record.
        thanks all of you.. i finally sorted it out.. i changed the function to this and it works
        if($prodid && $cat_featureid && $value){ my $sql = "INSERT INTO products_features (product_id, feature_id, +value) VALUES (".$prodid.", ".$cat_featureid.", ".$dbh->quote($value) +.") ON DUPLICATE KEY UPDATE value=".$dbh->quote($value); $dbh->do($sql); }