[PERL] как проверить на наличие записи

yarnik
Дата: 30.08.2006 01:10:26
надо если хоть одно значение совпадает - сообщить какое.
$count =$dbh->prepare(q{SELECT login, mail FROM user WHERE login LIKE $login AND mail LIKE $mail});
print $count;
сильно не пинайте, только учусь :-)
эта запись выдает:
DBI::st=HASH(0x828dc10)
yarnik
Дата: 30.08.2006 01:21:47
кое что уже изменил:
$count =$dbh->prepare(q{SELECT login, mail FROM user WHERE login LIKE $login OR mail LIKE $mail});
но дальше не знаю как получить результат
amge
Дата: 30.08.2006 08:11:41
Первое, что бросилось в глаза - это
q{SELECT login, mail FROM user WHERE login LIKE $login AND mail LIKE $mail}
Возможно, вместо q нужно qq, если $login и $mail - это переменные, и в выражении нужны их значения.

Что за структуру выдает метод prepare, я не знаю, но наверняка в perldoc DBI есть стандартные варианты использования этого метода.
Mr WeL
Дата: 30.08.2006 08:36:57
Привет!

А почему нельзя сделать таким образом?
my $data = $dbh->selectrow_arrayref("SELECT login, mail FROM user WHERE login LIKE ? AND mail LIKE ?", undef, $login, $mail)||undef;

if(defined $data){
    есть
}else{
   нету
}
Black
Дата: 30.08.2006 10:12:35
yarnik
надо если хоть одно значение совпадает - сообщить какое.

print $count;
сильно не пинайте, только учусь :-)
эта запись выдает:
DBI::st=HASH(0x828dc10)

Вы подготовили запрос методом prepare, а кто его исполнять будет?
Запрос у Вас тоже некорректен, сейчас LIKE идентичен =
my $sth = $dbh->prepare("SELECT login, mail FROM user WHERE login LIKE '%$login%' AND mail LIKE '%$mail%'"); 
$sth->execute;
while( my ($find_login, $find_mail) = $sth->fetchrow_array ) 
{
	print "$find_login - $find_mail\n";
}
nik2
Дата: 30.08.2006 10:16:49
Николай aka Motodor
yarnik
надо если хоть одно значение совпадает - сообщить какое.

print $count;
сильно не пинайте, только учусь :-)
эта запись выдает:
DBI::st=HASH(0x828dc10)

Вы подготовили запрос методом prepare, а кто его исполнять будет?
Запрос у Вас тоже некорректен, сейчас LIKE идентичен =


это где про `LIKE` == `=` почитать ???
Black
Дата: 30.08.2006 10:17:55
2nik2, я Вас не понял
nik2
Дата: 30.08.2006 10:23:11
а все,понял не разглядел в первом сообщении что логин без процентов....
Black
Дата: 30.08.2006 10:23:39
2nik2, внимательнее читайте, в sql инструкции написанной автором топика, LIKE сработает идентично =, т.к. не используются символ подстановки %, в своем примере я для автора подправил это.
Black
Дата: 30.08.2006 10:24:32
nik2
а все,понял не разглядел в первом сообщении что логин без процентов....

бывает, утро :)