0

コードに論理的な問題があると思います。テンプレート、値、行、列を持つmongodbがあります。たとえば、$record->{template} は T1 であり、$record->{column} 1 および $record->{row} にはいくつかの日付 ("dmY") があります。$record->{row} と $record->{column} に応じて @insert_data 値を調整する必要があります

問題は、その挿入ステートメントで @insert_data[1] または @insert_data[2] または ..etc を使用できないことですが、その理由がわかりません。また、問題を解決する方法もわかりません。

while (my $record = $collection->next){
    if($record->{template} eq "T1"){
        my @insert_data;
        if($record->{column} == 1 and $record->{row} != 0){
            #my @insert_data[1] = $record->{VALUE};
        }
        if($record->{column} == 2 and $record->{row} != 0){
            #my @insert_data[2] = $record->{VALUE};
        }
        if($record->{column} == 3 and $record->{row} != 0){
            #my @insert_data[3] = $record->{VALUE};
        }
        if($record->{column} == 4 and $record->{row} != 0){
            #my @insert_data[4] = $record->{VALUE};
        }
        if($record->{column} == 5 and $record->{row} != 0){
            #my @insert_data[5] = $record->{VALUE};
        }
        if($record->{column} == 6 and $record->{row} != 0){
            #my @insert_data[6] = $record->{VALUE};
        }
        $stmt->execute(@insert_data[1],@insert_data[2],@insert_data[3],@insert_data[4],@insert_data[5],@insert_data[6],$record->{template});
    } elsif($record->{template} eq "T5"){

    } elsif($record->{template} eq "T10"){

    }   
}
}

ありがとう!

4

3 に答える 3

0

エラー メッセージは表示されませんが、次の情報が役立つと思います。

@array_name[integer]単一要素の配列スライスです。 $array_name[integer]配列内のスカラー値です。

execute配列ではなく値をステートメントに渡すことをお勧めします。

于 2013-05-16T12:29:17.657 に答える