Ссылка на столбцы (MySQL) с помощью Perl (DBI)

#arrays #perl #dbi

#массивы #perl #dbi

Вопрос:

Я пишу на Perl, и у меня возникла небольшая проблема.

Я должен ссылаться на столбцы, названия которых я не знаю, но я знаю, сколько я получу обратно.

Я ищу функцию, подобную bind_columns but, которая работает с массивом.

Например, @Arr[0] содержит данные из столбца 1.

Комментарии:

1. А? @array = $sth->fetchrow_array(); Теперь у вас есть все столбцы из этой строки в массиве.

2. Вы можете использовать любой из fetchrow_array , fetchrow_arrayref , или fetchrow_hashref , или вы можете использовать bind_columns с определенными именами переменных (см. blog.bluefeet.net/2011/08/using-dbi-effectively-bind_columns для простого примера этого). Если ваш запрос не имеет форму select * from table , то вы знаете, сколько столбцов вы выбираете.

3. @Brian Roach: Это решение прямо здесь. Опубликуйте это как ответ (вместо комментария), и вы получите мой голос.

Ответ №1:

Посмотрите, как заполняется @Arr . Похоже, вы получаете это с помощью чего-то вроде:

 @Arr = $sth->fetchrow(); #=> ['bar','baz']
  

Возможно, было бы лучше получить:

 $row = $sth->fetchrow_hashref(); #=> {'name'=>'bar','title'=>'baz'}
$$row{'name'}; #=> 'bar'