Forum Webscript.Ru

Программирование => Perl => Тема начата: systemroot от 11 Февраля 2005, 10:54:46

Название: перл и работа с бд заморочки
Отправлено: 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 {};}
}
а она что бы я не вводил говорит что договор есть в чем ошибся понять не могу прочитал кучу документации вроде должно работать а нет.
Название: перл и работа с бд заморочки
Отправлено: Phoinix от 11 Февраля 2005, 11:15:32
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;
Название: перл и работа с бд заморочки
Отправлено: systemroot от 11 Февраля 2005, 12:14:13
не помогло все равно row возвращает 0.
неужели нет друго способа проверить кол-во возвращенных записей.
Название: перл и работа с бд заморочки
Отправлено: Green Kakadu от 11 Февраля 2005, 12:35:34
COUNT
Название: перл и работа с бд заморочки
Отправлено: Phoinix от 11 Февраля 2005, 14:02:38
systemroot

Ммм...

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


и

Цитировать
не помогло все равно row возвращает 0.


и еще:

Цитировать
...
if($num > 0){
...


Сам понял что сказал???
Название: перл и работа с бд заморочки
Отправлено: BonJorno от 14 Февраля 2005, 07:25:14
есть ещё Exist