URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6794
[ Назад ]

Исходное сообщение
"to: NuINu (Perl-Soap) и всем кто разберается"

Отправлено help , 28-Сен-07 16:17 
привет, помогите разобраться в следуйщем:
есть сервер:
use DBI;
use SOAP::Transport::HTTP;
SOAP::Transport::HTTP::CGI
    -> dispatch_to('ClassName')
    -> handle;
package ClassName;
sub sms {
  my $class = shift;
  my $envelope = pop;
     return SOAP::Data->name('text'=>$envelope->{'text'});
    }
    exit;
хочу сделать проверку:

$query ="select name from table where name='$text'";
$sth=$dbh->prepare($query);
$sth->execute();
if ($sth->rows)
{
возвращал клиенту следущее: Такого $text в базе нет
}
else{
$text существует в базе
}

Как интерировать эту проверку правельно ?
Заранее благодарен
}


Содержание

Сообщения в этом обсуждении
"to: NuINu (Perl-Soap) и всем кто разберается"
Отправлено NuINu , 28-Сен-07 16:44 

>Как интерировать эту проверку правельно ?

???
извините, я таких словей не знаю. что вы хотите?


"to: NuINu (Perl-Soap) и всем кто разберается"
Отправлено help , 28-Сен-07 16:48 
вот как пробовал но что не так:

my $text;
sub sms {
  my $class = shift;
  my $envelope = pop;
   $text= SOAP::Data->name('text'=>$envelope->{'text'});

###############################
$query="select name from table where name='$text' ";
$sth=$dbh->prepare($query)";
$sth->execute();
################################
if ($sth->rows)
{
       $text= SOAP::Data->name('text'=>$envelope->{'text'})."есть такой";
}else{
       $text=  SOAP::Data->name('text'=>$envelope->{'text'})."нету";
    }
return $text;
}
exit;                            


"to: NuINu (Perl-Soap) и всем кто разберается"
Отправлено NuINu , 28-Сен-07 16:53 
>вот как пробовал но что не так:

а что не так то? слово то можно расшифровать "интерировать "
вообщето у меня 3 минуты и конец рабочего дня :)))


"to: NuINu (Perl-Soap) и всем кто разберается"
Отправлено help , 28-Сен-07 16:59 

спасибо за помощь и приятных выходных

"to: NuINu (Perl-Soap) и всем кто разберается"
Отправлено deep_admin , 29-Сен-07 00:03 
>[оверквотинг удален]
>################################
> if ($sth->rows)
> {
>       $text= SOAP::Data->name('text'=>$envelope->{'text'})."есть такой";
> }else{
>       $text=  SOAP::Data->name('text'=>$envelope->{'text'})."нету";
>    }
>return $text;
>}
>exit;

я бы сделал так:
$rows_affected = $sth->execute();

if ($rows_affected=~m/\d/)
{}
else
{}


"to: NuINu (Perl-Soap) и всем кто разберается"
Отправлено help , 01-Окт-07 09:17 
cito-to ne tak , smotri:
use DBI;
use SOAP::Transport::HTTP;
SOAP::Transport::HTTP::CGI
    -> dispatch_to('ClassName')
    -> handle;
package ClassName;
sub sms {
  my $class = shift;
  my $envelope = pop;
  my $text= SOAP::Data->name('text'=>$envelope->{'text'});
my $server = '....';
my $db = 'database';
my $username = '....' ;
my $password = '.....' ;

$query="select name from table where name='$text' ";
$sth=$dbh->prepare($query);
$row_affected= $sth->execute();

if ($row_affected=~m/\d/)
{
       $text= SOAP::Data->name('text'=>$envelope->{'text'})."esti takoi";
}else{
       $text=  SOAP::Data->name('text'=>$envelope->{'text'})."netu takogo";
    }
return $text;
}
exit;

толи не вазврощает $text толи не доходит в $sth, то есть не выдает результата


"to: NuINu (Perl-Soap) и всем кто разберается"
Отправлено NuINu , 01-Окт-07 09:25 
>cito-to ne tak , smotri:
>толи не вазврощает $text толи не доходит в $sth, то есть не
>выдает результата

я тебе дам универсальный пару советов, которые сделают из тебя первокласного перл(и не только) программиста, конечно если ты им будешь следовать :)

всегда проверяй значения возвращаемые функциями.
всегда веди лог, тем более при  при отладке, и выводи туда все мало мальские значимые результаты.

и тогда ты не будешь гадать, толи это толи то.


"to: NuINu (Perl-Soap) и всем кто разберается"
Отправлено help , 01-Окт-07 09:44 
спасибо за советы
но все таки помоги в даном случее, горит
потом начну соблюдать ваши советы и не буду беспокоить по пустекам
зараннее благодарен


"to: NuINu (Perl-Soap) и всем кто разберается"
Отправлено NuINu , 01-Окт-07 11:49 
>спасибо за советы
>но все таки помоги в даном случее, горит
>потом начну соблюдать ваши советы и не буду беспокоить по пустекам
>зараннее благодарен

извини, тут тебе никто помочь не сможет, тут ты должен это сделать сам. что может быть проще
open(LOG, ">>", "/access_enable_write_apache/my.log");

if(defined($sth)) {
    print LOG "с sth все впорядке, смотри дальше\n";
}

print LOG "rows: $row_count\n";
close(LOG);


"to: NuINu (Perl-Soap) и всем кто разберается"
Отправлено help , 01-Окт-07 12:06 
в me.log ничего не пишиться



"to: NuINu (Perl-Soap) и всем кто разберается"
Отправлено NuINu , 01-Окт-07 13:46 
>в me.log ничего не пишиться

if(defined($sth)) {
    print LOG "с sth все впорядке, смотри дальше\n";
} else {
   print LOG "с sth НЕ все впорядке, смотри здесь\n";
}


print LOG "rows: $row_count\n";

что то определенно должно записаться. иначе у пользователя под которым ты работаешь нет прав записи в этом каталоге. дай их.