1

perlの配列要素の最初と最後にcharを追加する簡単な方法はありますか?

Ex:my $str ='table1,table2,table3'

my @arry = split (/,/,$str)

私は出力が次のようになるのが好きです

'table1','table2','table3'

したがって、SQLクエリで使用できます

ありがとう。

4

2 に答える 2

9
join(',', map "'$_'", @arry)

あなたが求めているものです。

ただし、プレースホルダーを使用することをお勧めします。

my $str = 'table1,table2,table3';
my @arry = split(/,/, $str);
if (@arry) {
    my $query = 'select * from tablename where colname in (' . join(',',('?') x @arry) . ')';
    my $sth = $dbh->prepare($query);
    $sth->execute(@arry);
    ...
}
于 2012-12-20T09:19:52.347 に答える
3

DBI(https://metacpan.org/module/DBI)を使用してデータベースを操作する場合、クエリでプレースホルダーを使用すると、DBI(https://metacpan.org/module/DBI)を使用できるため、値を引用する必要がありません。 。

たとえば、テーブルに何かを挿入する場合は、次のようにします。

    $dbh->do("INSERT INTO table VALUES(?, ?, ?)", undef, @arry) 
        or die $dbh->errstr;

ここ@arryで、はテーブルに挿入される正確に3つの値を含む配列です。

これについての詳細はここで見つけることができますhttps://metacpan.org/module/DBI#Placeholders-and-Bind-Values

于 2012-12-20T09:28:47.917 に答える