MySQL e Perl

di il
1 risposte

MySQL e Perl

Buongiorno a tutti, chiedo aiuto per una query di insert in un database MySQL con linguaggio Perl.
La query di read l'ho già scritta e funziona, ve la allego qua insieme al blocco per richiamarla

my $listCoupon = read_coupons();
my $description;
my $code;
my $id_customer;
my $percentuale;

while(my $row = $listCoupon->fetchrow_hashref) {
$code=$row->{'code'};
$description=$row->{'description'};
(my $x, $id_customer, $percentuale) = split(/;/, $description);
}
print $id_customer;
print $percentuale;
print $code;


sub read_coupons {
my ($id_ordine_max) = @_;
my $sth;
my $qf = dbi_ps('ps_quantity_discount_rule');
my $sql = q{select * from } . $qf . q{ where description like 'AMBASSADOR%' };
eval { $sth = $dbh->prepare($sql) };
eval { $sth->execute() or errore_sql($sql) };
# print $sql; die;
return $sth;
}

Questa è la query di write che ho impostato, provando a printare $sql mi dà una serie di errori che probabilmente derivano dalla query

sub write_coupons{
my($id_customer, $percentuale, $code)= @_;
my $qf = dbi_ps('affiliate_coupon');
my $sql = q{ INSERT INTO } . $qf . q{ (id_customer, percentuale, code)
VALUES ( '} .
$id_customer . q{', '} . $percentuale . q{', '} . $code. q{', '}} ;
my $sth;
eval { $sth = $dbh->prepare($sql) };
eval { $sth->execute() };
return $sth;
print $sql;

}

SE POTETE AIUTARMI VE NE SAREI GRATO

1 Risposte

  • Re: MySQL e Perl

    Di perl non ne so nulla, ma ad occhio mi pare che ci sia una virgola e un aperto apice di troppo e che manchi la chiusa tonda dopo l'ultimo apice dell'ultimo valore nella insert.

    Da quel che vedo la costruzione della query fatta dal tuo codice porta ad avere una cosa del genere:
    
    INSERT INTO tabella (id_customer, percentuale, code) VALUES ('..', '...', '...','
    
    (c'è quel «,'» di troppo e manca la chiusura della tonda alla fine)

    dato da questa parte di istruzione perl:
    
    $code. q{', '}};
    
Devi accedere o registrarti per scrivere nel forum
1 risposte