Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> (PERL) fetch_array, ошибка с DBI 
:(
    Опции темы
R4z0R
Дата 11.10.2007, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 11.10.2007

Репутация: нет
Всего: нет



Подскажите по ошибке, что не так написал:

Код

my $dbh = DBI->connect("dbi:Pg:port=5432 host=$pghost user=$login password=$pwd dbname=$dbname")
or die "Dont connect to DB:$DBI::errstr\n";

my $sth=$dbh->do("SET DATESTYLE TO 'ISO'");
my $sth=$dbh->do("SET CLIENT_ENCODING TO 'WIN'");
my $sth=$dbh->prepare("select prinadl from prinadleg where prinadl~*'From site");
$sth->execute();
my $clients={};
my $clients->{'prinadl'} = (my $array_ref=$sth->fetchrow_arrayref)[0]; ............................................вот эта строка интересует
print "$array_ref";
$sth->finish();


Выдает ошибку Can't use an undefined value as a HASH reference
и ниже main::insert_DB('HASH(0x97cd7ac)', 'HASH(0x97cd7d0)', 'HASH(0x9426f28)', 'HASH(0x97e3c54)')
PM MAIL   Вверх
arto
Дата 11.10.2007, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



попробуйте use strict;

perldoc strict
PM MAIL ICQ   Вверх
R4z0R
Дата 11.10.2007, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 11.10.2007

Репутация: нет
Всего: нет



использую, вначале прописано (выше кусок кода sub), поэтому и my ставлю
PM MAIL   Вверх
korob2001
Дата 11.10.2007, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Попробуй вместо fetchrow_arrayref, воспользоваться методом fetchrow_array, всё остальное оставь без именений, правда ещё и переменную $array_ref, нужно будет заменить массивом. Если заработает, то проблема в том, что ты обращаешься к первому элементу списка, а у нас ссылка на массив.

Ну или если нужно всёже юзать ссылку, тогда разыменуй её с помощью оператора стрелка ->
Код

my $clients->{'prinadl'} = (my $array_ref=$sth->fetchrow_arrayref)->[0]; 



Это сообщение отредактировал(а) korob2001 - 12.10.2007, 15:28


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0627 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.