0

ハイフンを含むフィールド名を持つ MYSQL データベースがあります。Perl を使用して XML からデータベースにデータを挿入しようとしています。%HEAD に XML があります。キーは列ヘッダーで、値は対応するデータです。

my %HEAD= ('REGISTRATION-NUMBER' => 'AAACT2727QXM003',
           'RETURN-YEAR' => '2013', 
           'MONTH' => 'July', 
           'LTU' => 'Yes',
           'NIL-RETURN' => 'No',
           'ASSESSEE-NAME' => 'TATA MOTORS LIMITED');

my @HEADER_keys= keys %HEAD;


foreach $key(@HEADER_keys) {    
    $value= $HEAD{$key};
    my $sth = $dbh->prepare("INSERT INTO indirect_taxes($key) VALUES ($value)");
    $sth->execute() or die $sth->errstr;
}

またはforeachの代わりに

my @HEADER_values= values %HEAD;
my $sth = $dbh->prepare("INSERT INTO indirect_taxes(?) VALUES (?)");

$sth->execute_array(\@HEADER_keys, \@HEADER_values) or die "the failure cause: $DBI::errstr";

キーにハイフンが含まれているため、MYSQL 構文エラーが発生します。テーブルのフィールドにハイフンを含めることはできますか?

構文を取得しましたが、perl を使用して変数 $key または @HEADER_keys にバックティックを追加できませんでした。

$keys にバッククォートを追加する方法を提案してください。

4

1 に答える 1