Perl: Как разделить данные из БД MySQL на переменные (+) @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 6 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
Kamil
новый человек
0
Сообщения: 17
Зарегистрирован: 30.03.03
Заголовок сообщения: Perl: Как разделить данные из БД MySQL на переменные (+)
Сообщение Добавлено: 30 Март 2003, 15:33:26 
вот чтобы все из не взять использую это:
my $sth = $dbh->prepare ("SELECT * FROM perl_rulezzz") ;
$sth->execute();
while (my @row = $sth->fetchrow_array() ) {
print ("@row<br>");
}

а мне надо что б я мог отдельно обращаться к каждой ячейке т.е. $name, $id и пр.
Буду очень благодарен за помощь.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 30 Март 2003, 16:19:47 
Код:
my ($id, $name) = @row;


А ты, брат, мазохист -- использовать "select *" совместно с fetchrow_array...
ptitov
новый человек
0
Сообщения: 175
Зарегистрирован: 22.07.02
Откуда: Москва
Сообщение Добавлено: 30 Март 2003, 20:32:44 
@row[0], @row[1] и т.д., ячейки размещены по порядку.
Если надо обязательно по именам, то хэш можно получить функцией fetchrow_hashref.

_________________
Иногда хостер
Kamil
новый человек
0
Сообщения: 17
Зарегистрирован: 30.03.03
Сообщение Добавлено: 30 Март 2003, 21:20:11 
Спасибо огромное!

А по поводу использовать "select *" совместно с fetchrow_array... как в книжке написано так и делаю, все время работал с текстовыми базами, а тут вдруг пришлось с Mysql работать, так что не силен...но хочу :dandy: Еще раз спасибо!!!
ptitov
новый человек
0
Сообщения: 175
Зарегистрирован: 22.07.02
Откуда: Москва
Сообщение Добавлено: 30 Март 2003, 22:46:57 
SELECT * делать не надо. Никогда. По двум причинам:
1. При прочтении написанного кода, скажем, через месяц, не будет ясно, какие поля достаются из БД.
2. При добавлении новых полей в таблицу безпричинно увеличиться время выполнения запроса.

_________________
Иногда хостер
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 31 Март 2003, 00:42:43 
Правиьная причина: "select *" возвращает поля в некотором наперед неизвестном порядке. Да, обычно это порядок, в котором определены столбцы. Но, к примеру, после команды "alter table … add column … first" порядок поменяется и программа начнет гнать туфту.

В то же время работа через fetchrow_hashref в этом плане вполне безопасна и по скорости работы практически не отличается от fetchrow_array.
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 6 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100