2016-10-13 15 views
0

私は現在、SQLクエリで使用される2つの異なる文字列を返す2つのマルチセレクションボックスを持つWebページを持っています。Perl DBI 2クエリで1つの動的配列

私は現在、クエリで1文字列しか使用していませんが、別の文字列を追加したいと考えています。

私は配列

@sitetemp = split ',', $siteselect; 
my $params = join ', ' => ('?') x @sitetemp; 

$params

$mysql_inquire = "SELECT starttime, SUM(duration) FROM DB WHERE feature = \"$key\" and starttime >= $start and starttime <= $end and site IN ($params) group by starttime order by starttime"; 


$sth = $DBH->prepare($mysql_inquire); 
$sth->execute(@sitetemp); 

でクエリを使用することができる午前に作成された文字列は、基本的に私の質問は、私は2を使用して、同じことを行うことができる方法である持っています異なる配列ですか?

私は、という行は動作しないと仮定します。

+1

試しましたか?それはうまくいくだろう。 – simbabque

+1

文字列中の '?'の数が 'execute()'に渡す値の数と同じであれば問題ありません。 –

答えて

3

あなたのアプローチはうまくいくでしょう。

関数に必要な数だけ配列を渡すことができます。配列は単なる値のリストです。

は、次の例を考えてみましょう:

sub foo { 
    print Dumper \@_; 
} 
my @a = (1, 2, 3); 
my @b = (4, 5, 6); 
foo(@a, @b, (7, (8), 9, (((10))))); 

これが印刷されます:

$VAR1 = [ 
      1, 
      2, 
      3, 
      4, 
      5, 
      6, 
      7, 
      8, 
      9, 
      10 
     ]; 

をあなたはfoo(@a, @b)を言うとき、それは単にリストに各配列を評価します。そして、あなたは好きなだけ多くのリストを結合することができます、彼らはいつもを平らにしますです。

関連する問題