Forum Webscript.Ru
Программирование => Perl => Тема начата: systemroot от 11 Февраля 2005, 10:54:46
-
Есть у меня функция проверки которая должна проверять есть ли такой договор в базе и если есть то выводить ошибку:
sub check_iptel_dogs_dogname
{
my $doc = shift;
my $fields = shift;
my $cData= $doc->getCData();
my $dbh = $common->dbConnect(30);
my $DogName = $cData->{10004374};
my $sth = $dbh->prepare("SELECT DogName FROM Dogs Where DogName=\\"$DogName\\"");
$sth->execute;
my $num = $sth -> {NUM_OF_FIELDS};
if($num > 0){
return {
message => "Такой договор уже существует введите другой.",
is_error => 1,
fix_type =>\'replace\',
fields => [10004374],
}
}
else{return {};}
}
а она что бы я не вводил говорит что договор есть в чем ошибся понять не могу прочитал кучу документации вроде должно работать а нет.
-
systemroot
http://search.cpan.org/~timb/DBI-1.47/DBI.pm
...
NUM_OF_FIELDS (integer, read-only)
Number of fields (columns) in the data the prepared statement may return. Statements that don\'t return rows of data, like DELETE and CREATE set NUM_OF_FIELDS to 0.
...
Надеюсь перевод не нужен...
my $num = $sth -> rows;
-
не помогло все равно row возвращает 0.
неужели нет друго способа проверить кол-во возвращенных записей.
-
COUNT
-
systemroot
Ммм...
а она что бы я не вводил говорит что договор есть в чем ошибся понять не могу прочитал кучу документации вроде должно работать а нет.
и
не помогло все равно row возвращает 0.
и еще:
...
if($num > 0){
...
Сам понял что сказал???
-
есть ещё Exist