my $data = qq(SELECT engine, name1, name2, name3, name4, lable1, lable2, lable3, lable4, settings1, settings2, settings3, settings4 FROM special_fields WHERE engine IN (".join(",",map($dbh->quote($_), @choices)).") AND settings1="public" OR settings2="public" OR settings3="public" OR settings4="public"); my $sth = $dbh->prepare($data); $sth->execute() or die $dbh->errstr; my ($engine, $name1, $name2, $name3, $name4, $lable1, $lable2, $lable3, $lable4, $settings1, $settings2, $settings3, $settings4); $sth->bind_columns(\$engine, \$name1, \$name2, \$name3, \$name4, \$lable1, \$lable2, \$lable3, \$lable4, \$settings1, \$settings2, \$settings3, \$settings4);