perl에서 배열 요소의 시작과 끝 부분에 char을 추가하는 쉬운 방법이 있습니까?배열 요소에 char 추가
my @arry = split (/,/,$str)
Ex:my $str ='table1,table2,table3'
감사 SQL 쿼리에서 사용할 수있는
'table1','table2','table3'
과 같아야 좋아한다.
perl에서 배열 요소의 시작과 끝 부분에 char을 추가하는 쉬운 방법이 있습니까?배열 요소에 char 추가
my @arry = split (/,/,$str)
Ex:my $str ='table1,table2,table3'
감사 SQL 쿼리에서 사용할 수있는
'table1','table2','table3'
과 같아야 좋아한다.
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);
...
}
당신이 당신의 데이터베이스와 함께 작동하도록 DBI (https://metacpan.org/module/DBI)를 사용하려는 경우, 당신은 당신의 쿼리에서 자리 표시자를 사용하는 경우 그것은 당신을 위해 그것을 할 수 있습니다 당신은 가치를 인용 할 필요가 없다. 예를 들어
, 당신이 테이블에 무언가를 삽입 할 경우 : @arry
정확히 3 값을 포함하는 배열입니다
$dbh->do("INSERT INTO table VALUES(?, ?, ?)", undef, @arry)
or die $dbh->errstr;
은 테이블에 삽입합니다.
기타 자세한 내용은 여기를 참조하십시오. https://metacpan.org/module/DBI#Placeholders-and-Bind-Values
고마워요. 귀하가 제안한대로 자리 표시자를 사용했습니다. – Sourcecode
빈 배열에주의하십시오 ... 불행히도'colname in()'은 유효하지 않습니다 SQL – ysth