Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Jahor Miadzviedziew                  2:450/217      28 Nov 2003  01:21:57
 To : All
 Subject : dbi: почему не работает следующая конструкция?..
 -------------------------------------------------------------------------------- 
 
 [1]
 use strict;
 use DBI;
 ...
 $tmp{'links'} = 
   $dbh->prepare( "SELECT field1, field2 FROM table2 WHERE field3=?" );
 $tmp{'links'}->execute( $$ref{'field1'} );
 $tmp{'links'} = $tmp{'links'}->fetchall_arrayref( {} )
   or die $dbh->errstr() . "\n";
 ...
 
 этот пример работает.
 
 [2]
 use strict;
 use DBI;
 ...
 $tmp{'links'} = $dbh->prepare( 
   "SELECT field1, field2 FROM table2 WHERE field3=?" 
 
   )->execute( $$ref{'field1'} )->fetchall_arrayref( {} )
 
   or die $dbh->errstr() . "\n";
 ...
 
 этот пример не работает, падает с сообщением: Can't call method
 "fetchall_arrayref" without a package or object reference at
 /var/www/html/test3/cgi-bin/index.pl line 263. почему? почему, скажем,
 
 [3]
 sub utf82koi {
     return Text::Iconv->new( "UTF-8", "CP1251" )->convert(shift);
 }
 
 работает без проблем и делает именно то, что от него просят? где
 принципиальная разница между вызовами [2] и [3]?
 
 $ref является ссылкой на хэш ($ref = $sth->fetchrow_hashref() в while)
 и определена в обоих ([1] и [2]) случаях.  
 
 -- 
 corvus corax @home || if you touch me, i'll reap you apart
 GPG Fingerprint = 7954 5713 19D0 2713 A3B0 9B79 6F8E 4C25 E279 A165
 --- tin/1.6.0-20030714 ("Vatersay") (UNIX) (Linux/2.4.20-xer2-up (i686))
  * Origin: corvus corax' nest (2:450/217)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 dbi: почему не работает следующая конструкция?..   Jahor Miadzviedziew   28 Nov 2003 01:21:57 
 Re: почему не работает следующая конструкция?..   Sergey E.Sumin   28 Nov 2003 11:58:16 
Архивное /ru.perl/2725db261e6c.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional