Forum Webscript.Ru

Программирование => Perl => Тема начата: Pahom от 13 Августа 2002, 12:57:46

Название: Perl и Mysql
Отправлено: Pahom от 13 Августа 2002, 12:57:46
Проблема следующая:
Имеется база данных с текстовой информацией, а именно - база URL.
Имеется текстовый файл, также содержащий URL, отличные от занесённых в базу.
Требуется найти и распечатать совпадающие урлы.
 
Вот кусок кода:
 
foreach $stroka(@stroki){
$sth=$dbh->prepare("select url from request where url=\\"$stroka\\"");
$sth->execute();
while (@array=$sth->fetchrow_array())
{
    $line_s=pop @array;
    print "$line_s";
}
}
 
где @stroki - массив строк файла.
 
Странность состоит в том, что если совпадают числовые значения, а не текстовые - Perl успешно распечатывает это совпадение, но почему нет печати строкового совпадения?????????
Название: Perl и Mysql
Отправлено: C++ от 13 Августа 2002, 22:04:24
Мне кажется, что скорее всего проблема в том, что в запросах строковые параметры нужно заключать в апострофы, а не в кавычки.
Попробуй так: $sth=$dbh->prepare("select url from request where url=\'$stroka\' ");
Название: Perl и Mysql
Отправлено: dymka от 15 Августа 2002, 20:10:23
Можно даже одним запросом сделать...

  $sth = $dbh->prepare("select url from request where url in (\'" .  join("\',\'" @stroki) . "\')");


НЕ запутайся в кавычках только