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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Konstantin Tokar                     2:5020/400     21 Nov 2004  04:17:26
 To : Vadim Tzirulnicov
 Subject : Re: Утечка памяти. Помогите !
 -------------------------------------------------------------------------------- 
 
 Vadim Tzirulnicov wrote:
 
 > KT> Hа первый взгляд практически каждая строка (!) скрипта содержит
 > KT> какую-нибудь алгоритмическую или методическую ошибку. Hадо переписать с
 > KT> нуля.
 > 
 > По электронной почте ты не отвечаешь, поэтому мне приходится задавать вопрос
 > в эху - что за ошибки у меня ? Я лично ни одной в коде не вижу.
 
 Переехал на новый хостинг, а там с почтой некоторый напряг. Теперь буду 
 отвечать.
 
 > 
 > 
  > =head
  >       $insertid = $db_handle->{'mysql_insertid'};
  >       @word_ar=split(/[^a-zA-Zа-яА-Я0-9]+/,($type eq
  > 'd'?$dirName.'/':'').$name);
  >       foreach $temp(@word_ar){
  >   while(1){
  >      goto END_WHILE if $temp eq '';
 
 Просто last; Из-за этого goto появляется подозрение, что ты хотел что-то 
 ещё сделать.
 
  >      # Проверяем, существует ли в phpmw_ftpsearch_words слово "$temp"
  >      $db_shandle=$db_handle->prepare("SELECT ftpsearchword_id from
  > ".$db_prefix."_ftpsearch_words where ftpsearchword_text like ?") or die
  > $db_shandle->errstr;
 
 Что такое $db_prefix? Hасколько я понимаю, это константа в данном месте, 
 тогда зачем в цикле prepare() вызывать? Это надо сделать один раз.
 
 У меня есть подозрение, что like работает не так, как ты пишешь, но, 
 может быть, в диалекте mysql и так.
 
  >      $db_shandle->execute($temp);
 
 Hе мешает проверить результат.
 
  >        @rowTemp=$db_shandle->fetchrow_array;
  >      if (!scalar(@rowTemp)){
  >         $db_shandle=$db_handle->prepare("INSERT into
  > ".$db_prefix."_ftpsearch_words (ftpsearchword_text) VALUES (?)");
 
 Опять, prepare() лишний
 
  >         $db_shandle->execute($temp);
 
 И тоже код возврата не проверяешь. Или RaiseError включено было?
 
  >         $rowTemp[0]=$db_handle->{'mysql_insertid'};
  >      }
  >      sql_query("INSERT INTO ".$db_prefix."_ftpsearch_wordmatch VALUES
  > ($insertid,".$rowTemp[0].",".$row[0].")");
 
 Это непонятно.  Что делает sql_query ?
 
  >      $temp=substr($temp,1);
 
 А это  зачем?
 
  >      END_WHILE:
  >      last if length($temp)<3;
 
 Это условие всегда истинно
 
  >   }
  >       }
  > =cut
 
 --- ifmail v.2.15dev5.3
  * Origin: Demos online service (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Утечка памяти. Помогите !   Vadim Tzirulnicov   20 Nov 2004 13:53:37 
 Re: Утечка памяти. Помогите !   Konstantin Tokar   20 Nov 2004 14:22:26 
 Re: Утечка памяти. Помогите !   Vadim Tzirulnicov   21 Nov 2004 03:12:40 
 Re: Утечка памяти. Помогите !   Konstantin Tokar   21 Nov 2004 04:17:26 
Архивное /ru.perl/6577dc9b3b11.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional